Buen libro para principiantes sobre ARM [cerrado]

26

Estoy buscando un buen libro para principiantes para microcontroladores ARM. Debería cubrir la arquitectura de la CPU y la secuencia de arranque e idealmente también ensamblador, C y periféricos.

Tengo un libro como este para AVR y parece que hay varias buenas opciones para los chips Atmel. El panorama ARM es más complejo con múltiples proveedores y varias clases de chips. Una mirada en Amazon no reveló un claro favorito. Agradecería algunas recomendaciones.

kwo
fuente
¿Cuál es tu libro para AVR? Soy curioso. Además, tengo un paquete de cursos de mi universidad para ARM, pero me temo que nunca verá una publicación ...
Kevin Vermeer
1
@ kevin-vermeer Es un libro alemán: Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie escrito por un profesor retirado. Ella cubre todos los temas que mencioné en mi pregunta, incluso algunas cosas interesantes, como cómo contar las instrucciones del ensamblador para determinar cuánto tiempo necesitará un ciclo por iteración.
kwo
Supongo que necesito aprender alemán ...
Kevin Vermeer
Parece una lástima interesante para el libro. No sé muy bien el alemán para poder leerlo y entenderlo.
Dean
@kwo Supongo que no hay esperanza de obtener una versión traducida, ¿verdad?
NickHalden

Respuestas:

3

Le sugiero que vaya al centro de información ARM. Eso es un buen comienzo en lo que a mí respecta. Proporciona mucha información incluso cuando está migrando de una MCU a ARM. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0211a/index.html También el sitio ATMEL en sus chips ARM hará mucho bien. Buenas documentaciones y muchas notas de aplicación. Todo lo mejor.

Paul A.
fuente
Gracias. También hay algunos libros recomendados en el sitio.
kwo
13

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.

viejo contador de tiempo
fuente
Fantástica respuesta.
NickHalden
3

Los buenos libros sobre ARM son:

"ARM SOC Architecure" por Steve Furber

"Guía de desarrolladores de sistemas ARM" por Andrew Sloss, Dominic Symes y Chris Wright

"Manual de referencia de arquitectura ARM" de ARM

El último está disponible de forma gratuita en el sitio de ARM .

Sloss, Symes and Wright es excelente si quieres alejarte de los árboles para ver el bosque, especialmente si tienes que trabajar con sistemas integrados.

Furber es uno de los arquitectos originales de ARM y hace un excelente trabajo al guiarlo por la lógica del diseño de ARM y la forma en que funcionan los núcleos de procesador ARM en general.

Por supuesto, todo lo anterior es solo una recomendación basada en mi opinión personal / subjetiva y no debe considerarse como un complemento para un producto o autor en particular.

Darbehdar
fuente
Sería útil formatear la lista de libros como una lista, también es útil incluir enlaces para esos libros.
Trygve Laugstøl