Veamos ahora.
- 8051, PIC y AVR tienen arquitectura Harvard (espacios de memoria separados para RAM y memoria de programa). ARM tiene arquitectura von Neumann (programa y RAM en el mismo espacio).
- ARM tiene una arquitectura de 16 y / o 32 bits. Los otros son arquitectura de byte (8 bits).
- 8051 y PIC tienen un espacio de pila limitado: limitado a 128 bytes para el 8051, y tan solo 8 palabras o menos para PIC. Escribir un compilador de C para estas arquitecturas debe haber sido un desafío, y la elección del compilador es limitada.
- 8051, AVR y ARM pueden abordar directamente toda la RAM disponible. PIC solo puede direccionar directamente 256 bytes y debe usar la conmutación de banco para extenderlo, aunque el uso de un compilador de C lo oculta. Sin embargo, aún paga una penalización de velocidad.
- 8051 y PIC necesitan múltiples ciclos de reloj por instrucción. AVR y ARM ejecutan la mayoría de las instrucciones en un solo ciclo de reloj.
- 8051 y AVR son lo suficientemente similares como para que un AVR pueda reemplazar a un 8051 en productos existentes prácticamente sin cambio de hardware. Algunos AVR están hechos con 8051 pines para colocar directamente. La polaridad de reinicio es la principal diferencia.
- Los conjuntos de instrucciones 8051 y AVR son diferentes pero lo suficientemente similares como para que sea posible traducir el ensamblador 8051 al ensamblador AVR línea por línea (lo he hecho). Debido a que un 8051 toma 12 (a veces seis) relojes por instrucción y un AVR toma solo uno, debe modificar las rutinas críticas de sincronización.
- AVR y ARM tienen el mejor soporte para compiladores y aplicaciones, incluidos los compiladores GCC gratuitos.