Busque el manual ARM ARM, ARM Architectural Reference. Cubre el proceso de arranque, la arquitectura, el ensamblaje (ARM, thumb y thumb2), todo. El ARM ARM es genérico, para el núcleo específico que le interesa también habrá un TRM, Manual de referencia técnica. Todos estos documentos están disponibles de forma gratuita en el sitio web de ARM. El TRM entrará en los detalles específicos de ese núcleo, en particular si desea utilizar uno de los microcontroladores más nuevos basados en Cortex-M3, la secuencia de arranque o digamos que la tabla de excepciones es diferente del ARM tradicional y necesita el TRM para el Cortex-M3 para encontrar la información.
si termina con un brazo con un caché o mmu, es posible que también necesite obtener el TRM para eso del sitio web de ARM. Debe conocer el núcleo específico integrado en el chip de un proveedor en particular, por ejemplo, el PL310 r2p0 puede / puede ser diferente del r3p0. El proveedor debe tener esta información y puede proporcionar enlaces o tal vez los documentos del brazo directamente, normalmente no incrustan los documentos del brazo en su propia documentación. Creo que ARM lo prefiere así.
En lo que respecta a C, es solo C, nada especial, ARM es compatible con los compiladores principales, gcc, llvm, Keil (ahora propiedad de ARM), IAR, green hills, etc. Microsoft incluso tiene / tuvo uno (evitaría aunque). Nada especial para el ARM, pero necesita conocer los matices para el compilador específico y su vinculación. Code Sourcery es el camino a seguir en estos días para un compilador ARM basado en gcc listo para usar, la versión LITE se puede descargar y usar de forma gratuita, y hay versiones de pago si desea soporte (más soporte de brazo gcc gratis en google.com que tienes tiempo para leer). Antes del código fuente, emdebian era un lugar para ir, ya que algunas cosas yagarto y devkitarm y winarm tenían / tenían soluciones listas para usar (para Linux incrustado y no necesariamente, Code Sourcery o emdebian si desea realizar una compilación cruzada para Linux).
Tengo algunos blogs que no son realmente blogs, sino lugares para poner algunos programas de muestra e información sobre cómo mostrar algunos microcontroladores basados en ARM diferentes. Algunos piensan en C, en los blogs más antiguos les muestro cómo construir su propio compilador cruzado basado en gcc. Es posible que también tenga información de llvm (thumbulator tiene un par de ejemplos, aunque no documentados), ya que llvm se puede usar como un compilador cruzado para varias plataformas, no es necesario que lo compiles para un objetivo como gcc. Y la generación de código de llvm ha alcanzado gcc 4.x (gcc 4.x no es necesariamente mejor que gcc 3.xy ni gcc ni llvm son tan buenos como otros costosos pagos para compiladores propios de ARM).
http://stm32stuff.blogspot.com/
Desde allí, puede hacer clic en mi perfil y encontrar información similar para lpc, lmi (luminaria micro, las piezas stellaris, ahora propiedad de ti) sam7. No soy tan fanático de la familia lpc, mbed2 está bien aparte de los dolorosos leds azules. en este momento hay un tablero basado en stm32 de $ 12, algo de descubrimiento, listo para jugar de inmediato. Coridium tiene un tablero que coincide con la huella del arduino, al igual que el arce, puede obtener uno o ambos en sparkfun (muchas cosas buenas en sparkfun). si está buscando algo más poderoso, el beagleboard fue doloroso por la falta de interfaces, la versión china por el mismo precio es / fue mejor (apareció en una semana o dos pero no hay información de seguimiento de ningún tipo), tiene ethernet y un puerto serie no atornillado. Me gusta la pizarra, pero creo que no pudieron seguir la guía de diseño y pueden tener problemas con la omap. Me gustó el openrd de la gente de informática enchufable, pero odié la versión enchufable. El openrd tiene un conector de datos y alimentación sata en la placa, simplemente conecte un disco duro, otras placas de esta clase lo obligarán a algo basado en flash (léase: muy lento). Los núcleos de Marvel están corriendo círculos alrededor de los mapas en este momento de todos modos.
o pruebe mi simulador de conjunto de instrucciones para el pulgar (github) de forma gratuita, pero limitado al pulgar, sin brazo (sin embargo, puede llevar su código a las placas stm32, como el de $ 12). el armulador que está en gdb y en otros lugares es probablemente más doloroso de usar, pero admite el brazo y el pulgar, y qemu es fácil de usar si no tiene interés en ver qué está haciendo su código que no sea la salida del puerto serie. qemu soporta brazo, pulgar y pulgar2, creo que una o dos placas estelares se modelan allí.
Si ya conoce el ensamblador AVR, que no es un conjunto de instrucciones tan bueno (mejor que algunos, peor que otros), no debería tener ningún problema con ARM o pulgar, un poco más limpio, un poco más simple. Del mismo modo, si ha hecho C incrustado (fuera de una caja de arena) con el AVR, ARM será igual o más fácil. Puede ir con el mbed o el arce donde tienen cajas de arena que deberían facilitarle el inicio y luego, si desea aventurarse por su cuenta, puede hacerlo sin muchos problemas. el mbed simplemente copia el .bin a la unidad flash virtual, el arce usa su cargador o dfu-util o algo así no lo recuerdo.