Tengo un par de teléfonos celulares, uno de ellos es este:
http://www.gsmarena.com/sony_ericsson_elm-3057.php
Es posible borrar la memoria flash y reemplazarla con un gestor de arranque y luego cargar bocetos arduino o bocetos pic32 (C # / C ++).
Tengo esta idea porque es una plataforma muy barata para desarrollar proyectos de hardware. (Obtiene una pantalla, botones, E / S de audio, Internet, etc., obtiene todo por un precio muy barato en comparación con lo que obtiene comprando cada parte por separado).
¿Es posible borrar la memoria flash e instalar un cargador de arranque en un teléfono para usarlo como una computadora integrada?
microcontroller
telephone
bootloader
cellphone
Harry Svensson
fuente
fuente
Respuestas:
El costo nunca es un problema. Muchos entusiastas estarán dispuestos a pagar un precio moderado por dispositivos de alta gama fácilmente pirateables. El problema es que ARM es una plataforma cerrada. Por lo general, hay una parte llamada ROM privada en el mismo silicio de SoC (sistema en chip). Bloquea la reutilización.
Esta parte de ROM es responsable de elegir un gestor de arranque en algún orden: Módem Z en serie, Nand externo, ROM serial, tarjeta SD, USB externo. Para cada dispositivo, el pedido es individual y está poco documentado, por lo general, debe mantener presionados algunos botones cuando se enciende para ramificarse en un cargador alternativo. La imagen del gestor de arranque si la mayoría de las veces se verificó la firma digital del propietario de la plataforma. Entonces no hay suerte.
Para un proyecto único, está bien elegir un dispositivo aleatorio. Pero posiblemente le interesará más un dispositivo conocido, con esquemas publicados y código fuente disponible para Linux, Android, etc.
Entonces, mi sugerencia es mirar dispositivos rodeados de comunidades de usuarios activos : Raspberry Pi, BeagleBone, BeagleBoard, alguna plataforma de evaluación de Samsung (¿PandaBoard?)
Mi experiencia personal con TI AM35XX terminó con una decepción por la complejidad de todo. El Linux más pequeño del mundo llamado Angstrom tiene una imagen de distribución de 3GB. Los documentos para chips son de 4000-5000 páginas. No se sentía como un hobby y no era agradable.
La situación puede cambiar después de que Intel Atom SoC se vuelva popular. Espero un gran interés del usuario y seguiré a la multitud en dirección al Atom más pequeño posible con pantalla. Espero que alguien complete una pieza de montaje en panel con tamaño de tarjeta de crédito y GPIO. Será divertido.
fuente
Hace años, había un proyecto para hacer algo similar (ingeniería inversa, una familia de teléfonos barata y muy popular).
http://nokix.pasjagsm.pl/help/blacksphere/sub_050main.htm
Y sí, la opción de Android es probablemente la más fácil ... o Windows Mobile, también es razonablemente abierta.
fuente
No tengo experiencia en esto, pero no creo que sea fácil (si es posible). Creo que puede olvidarse de programarlo en C ++ o C #, y más bien en ASM + C. No sería compatible con bocetos arduino o código PIC32 ni nada, que no está hecho para la CPU específica. Muchos teléfonos nuevos tienen algo así como un núcleo ARM.
Realmente no sé cómo programarías el dispositivo, pero supongo que es posible, ya que generalmente pueden actualizar el firmware si se lo envías a reparar.
Además, tendría que codificar sus propios controladores para todo el hardware (pantalla, WLAN, sensores, etc.), lo que sería realmente difícil sin más información sobre el hardware, que el fabricante del teléfono probablemente no le entregará. .
Creo que la forma más fácil sería algo así como un viejo teléfono Android, ya que puedes obtener el código fuente con los controladores y todas las cosas de bajo nivel de forma gratuita. Puede extraer o usar la interfaz de usuario y otros componentes visibles para el usuario. Pero esto probablemente no es lo que quieres, a menos que tengas algunos teléfonos Android viejos por ahí.
Además, si el teléfono ha sido "pirateado" para ejecutar cualquier otro sistema operativo, especialmente los de código abierto como Android, es posible que pueda obtener las fuentes para que juegue el puerto.
fuente
Hacerlo todo usted mismo será difícil en el mejor de los casos. Tendría un tiempo mucho más fácil con uno de los dispositivos compatibles con el proyecto Rockbox , que es el firmware de código abierto para reproductores de mp3. Algunos de estos dispositivos son económicos y ofrecen muchas de las ventajas que menciona, y están diseñados para actualizar su firmware a través de USB. Tendría la ayuda de una comunidad activa que ya ha descubierto los problemas básicos con respecto a los compiladores, cargadores de arranque, etc., así como algún código fuente para comenzar.
Una buena característica de Rockbox es que configura los dispositivos para el arranque dual, por lo que aún se pueden usar para su propósito original cuando no está utilizando el nuevo firmware.
fuente
No.
La documentación pública de este teléfono (como en la página a la que se vinculó) ni siquiera enumera el tipo de procesador. Incluso si lo hiciera, necesitaría el esquema (incluidos los números de parte de todos los circuitos integrados) para poder escribir código para él. Eso sería propiedad de Sony / Ericsson, por lo que no lo va a obtener). Lo mismo para cualquier otro teléfono celular.
En el caso poco probable de que obtenga toda la documentación para el procesador, la memoria flash, etc., podría ser posible escribir un cargador de arranque compatible con Arduino después de pasar varias semanas de su tiempo. Por supuesto, esto requeriría que obtenga el entorno de desarrollo para el teléfono, lo que probablemente costaría cientos, si no miles de dólares.
Incluso si usted fuera capaz de escribir un gestor de arranque compatible con Arduino, sería imposible la repetición imposible para cargar y ejecutar Arduino bocetos porque 1) el compilador para el Arduino va a ser emisor de código para un microcontrolador Arduino compatible (ATmega, PIC32, etc.) , y el teléfono definitivamente no va a usar uno de esos, lo más probable es que sea una variante de ARM); y 2) los puertos de E / S no se ubicarán en las mismas ubicaciones (puertos) en el teléfono celular que en el Arduino.
Tenga en cuenta que hay algunos teléfonos celulares de código abierto , pero no podrá ejecutar el software Arduino en los mismos que mencioné anteriormente (incompatibilidad de procesador y hardware). Algunas de las otras respuestas han sugerido Android, pero tenga en cuenta que no está en la lista de teléfonos de código abierto debido a los controladores propietarios. Y una vez más, la pregunta era si podía ejecutar el código Arduino en ellos, y la respuesta definitivamente es no.
Por lo tanto, es mucho más barato morder la bala y obtener una placa Arduino y periféricos.
fuente
¿Qué se necesita para convertir varios hardware "cotidianos" en plataformas de microcontroladores? Las modificaciones de Sprite son una excelente fuente de inspiración. Da una buena explicación del proceso necesario para "abrir" los dispositivos y obtener el control sobre ellos. TL; DR: puede ejecutar Linux en una tarjeta SD y en un disco duro. No, no estoy usando un disco duro. En un disco duro: en la CPU bastante potente que es el controlador de la unidad.
fuente