linux - tag - ¿Recursos sugeridos para el programador ARM novato?
puddletag (6)
Estoy empezando a desarrollar una aplicación en el tablero de brazo integrado de http://www.embeddedarm.com . Soy un novato en el desarrollo de aplicaciones integradas. Me gustaría obtener recursos como libros, guías en línea que me ayudarán a desarrollar aplicaciones en el brazo integrado. Estaba planeando usar Linux como el sistema operativo.
Eche un vistazo a www.gnuarm.com . Embedded.com también tiene algunos artículos sobre ARM.
Una vez que todo está funcionando, es principalmente la programación de Linux. Si comienzas con un tablero de evaluación, supongo que ya tienes muchas herramientas. De todos modos, puede encontrar útiles los siguientes enlaces.
Toolchain: compilación cruzada. Puede ir por el camino fácil, es decir, descargar una cadena de herramientas preconstruida de sourcery de código . O puede ir por el camino difícil y construir su propia cadena de herramientas. Sin embargo, la forma más difícil es más fácil si usa la herramienta correcta. Croostool-ng es sucha proyecto con una lista de correo muy reactiva.
Kernel: bueno, la arquitectura del brazo ha estado en la línea principal por un tiempo, sin embargo, si tienes alguna pregunta específica sobre ARM, definitivamente debes preguntarles allí
Espacio de usuario: una vez que el kernel se está iniciando, necesita un espacio de usuario para ejecutar, es decir, algún sistema de archivos, shell, biblioteca C, proceso init, etc ... Para crear tales herramientas, hay muchas opciones. Una es hacer todo tú mismo. Empiezas con busybox y luego continúas con las diversas herramientas que necesitas. O puede ir con herramientas automatizadas y configurables. Mi preferencia es ptxdist , porque tiene el nivel de complejidad correcto (para mi uso). Otra opción es buildroot que no sé. Y si sientes que necesitas algo más poderoso, tal vez puedas echarle un vistazo a OpenEmbedded .
Encontré algunos libros relacionados con el desarrollo integrado, pero eran más como guiones documentados. Crear un sistema integrado completo es difícil, y creo que encontrará más información en las herramientas y en la lista de correo que en los libros.
En algún momento, deberá comprender cierto nivel de lenguaje ensamblador ARM. La "Guía del desarrollador de sistemas ARM" de Andrew Sloss, et al. Es un libro realmente bueno para el ensamblaje de ARM.
Si tiene una placa de la serie TS-7000, es posible que desee suscribirse a la lista de correo TS-7XXX .
Otro gran recurso embebido de Linux es Embedded Linux: Hardware Software & Interfacing , dirigido por el autor de ese libro. Proporciona varias muestras para trabajar con Embedded Linux, la mayoría de las cuales se ejecutan en la plataforma TS-7XXX.
Creo que depende del tipo de aplicaciones que va a desarrollar.
Para Linux (no para Android) y las aplicaciones, nada especial para el dispositivo ARM, no creo que necesite ningún conocimiento específico de ARM, excepto para la cadena de herramientas de compilación. Las distribuciones como Ubuntu y Arch tienen versiones basadas en ARM, casi todos los paquetes relacionados con dev en sus repositorios pueden funcionar con ARM.
Para aplicaciones que usan dispositivos como cámaras, acelerómetros y otros, si tienen controladores en Linux, entonces no hay de qué preocuparse.
Lo que realmente necesita preocuparse son los componentes de hardware que no tienen controlador o controladores muy baremetal en Linux, en tal caso, tiene que comunicarse con el dispositivo directamente. O necesita trabajar dentro de kernel o usar ioctl como interfaz. Luego, la administración de memoria ARM, la administración de E / S (asignación de memoria, sondeo, etc.), la programación de interrupción es lo que necesita aprender. Simplemente encuentre el manual para su CPU en el sitio del vendedor, como encontrar el manual de desarrollo Intel x86 o x64.