Buen momento para estar en movimiento; el 8-bits están muriendo rápidamente; cuando usted puede comprar un $5 junta con (por ejemplo) un STM32F103 que es un lugar capaz BRAZO de 32 bits del microcontrolador (con USB, incluso!), no hay duda de que los tiempos han cambiado.
Usted ha tenido algunas respuestas excelentes, ya, pero principalmente yo diría que "se olvide de la asamblea" y casi "olvidar el cuidado acerca de cómo la cpu funciona en un nivel bajo" - un día habrá un rincón caso de que usted necesita para profundizar en ella (una optimización específica o para la depuración), pero el BRAZO de núcleos de ejecutar código C excepcionalmente bien (por diseño) y variar rara vez se necesita para aventurarse en el interior de las agallas.
Esto significa que usted va a gastar una cierta cantidad de tiempo de golpearse la cabeza contra los problemas con los compiladores (y, especialmente, enlazadores y makefiles) barfing ocultar errores en usted pero son superables.
Las entrañas de cómo los Brazos de trabajo (es decir, la cpu ARM libros) son densos y no muy interesante hasta tal día como usted realmente necesita para optimizar (y usted se sorprenderá de cómo con frecuencia que es cuando tiene 32 bits de los registros y su PLL había de reloj de CPU se encuentra en la región de 100mhz).
El "old skool" BRAZO conjunto de instrucciones es mucho más fácil leer un desmontaje de que el mucho más reciente "Thumb2" - que es lo que usted encontrará en la mayoría de los modernos microcontroladores nivel de los Brazos (Corteza) - pero de nuevo las entrañas de la asamblea instrucciones de idioma en su mayoría se desvanecen en el fondo; si usted tiene el derecho conjunto de herramientas (especialmente un decente depurador de código fuente con los breakpoints/solo paso, etc) simplemente no se preocupan demasiado acerca de ser el BRAZO.
Una vez que estás en el mundo de los registros de 32 bits y de 32 bits de bus de datos anchos y todo lo que usted siempre quiso disponibles en el chip que nunca vas a volver a una de 8 bits de la CPU de nuevo; básicamente, a menudo hay ninguna sanción para "tomar con calma" y la escritura de código para ser legible más que eficiente.
Sin embargo... los periféricos... aye y AHÍ ESTÁ el problema.
Realmente consigues un montón de cosas para jugar con modernos Mcu, y mucho de ello es bastante elegante cosas; que a menudo encontramos con un mundo de sofisticación mucho, mucho más allá de AVR, PIC y el 8051 en el chip de los periféricos.
Un temporizador programable? Nah, tiene ocho! DMA? Cómo alrededor de 12 canales con programación de prioridad y el modo de ráfaga y encadenado y modo de auto-recarga y.. y.. y...
I2C? I2S? Decenas de pin multiplexado de las opciones? Quince maneras diferentes para reprogramar el chip de flash? Seguro!
A menudo se siente como que he pasado de hambre a la fiesta con los periféricos y es común que no pedazos enteros de un chip podrás admirar pero casi no lo uso (de ahí; clock gating).
La cantidad de la en-viruta de hardware (y las variaciones en la que en sólo un proveedor de la línea de chips), que hoy en día es bastante alucinante. Una ficha de proveedor será, por supuesto, tienden a volver a usar los bloques de IP de modo que una vez que se familiarice con una determinada marca se hace más fácil, pero "mierda hacer tengo craaaazy hoy en día."
Si nada de los periféricos y de sus interacciones (y DMA y las interrupciones y de autobuses de asignación y y y...) son TAN complejo (y, en ocasiones, no se exactamente como se describe en las hojas de datos) para que los ingenieros tienen, con frecuencia, una de las favoritas de la gama de BRAZO Mcu y tienden a pegarse con él simplemente porque están familiarizados con los periféricos y herramientas de desarrollo.
Buenas librerías y herramientas de desarrollo (es decir, rápido compilar+depuración de ciclo, con un adecuado depurador) y un conjunto amplio de trabajo código de ejemplo los proyectos son absolutamente cruciales para el BRAZO MCU de elección en la actualidad. Parece que la mayoría de los vendedores ahora tienen muy barato placas de evaluación (
Como estoy seguro de que te has dado cuenta, una vez que usted consiga más allá de la microcontrolador nivel con los Brazos y en el SOC (por ejemplo, Raspberry Pi/etc estilo de SOCs), a continuación, las reglas cambian completamente y es todo acerca de que tipo de Linux vas a correr, porque - con muy pocas excepciones - se estaría ladrando loco para intentar otra cosa.
Básicamente, independientemente de la CPU (mayo) han sido pre-seleccionado para usted en este concierto, cómprese un puñado de super-barato Corteza de evaluación basados en las tablas de un par de diferentes proveedores (TI, STM, Freescale y más vienen a la mente) y tiene un hack de todo con el código de ejemplo.
Último consejo; una vez que se encuentra la página o tres en la hoja de datos que describe el pin-multiplexado de opciones para el exacto número de parte chip que usted está trabajando, usted podría querer imprimir y pegar en la pared. Averiguar tarde en un proyecto en el que una determinada combinación de periféricos es imposible debido a que pin del multiplexado no es divertido, y a veces esa información es tan sepultado a usted le juro que están tratando de ocultar :-)