La hoja de datos de atmega16 dice que tiene 16 KB de memoria de programa flash en chip, pero el mapa de memoria para memoria flash varía de 0x0000 a 0x1FFF (8192, es decir, 8KB), lo que proporciona un rango de solo 8 KB de memoria flash. Además, el contador del programa tiene solo 13 bits de ancho, y solo puede acceder a 8 KB de memoria.
En mi entendimiento, el espacio de direcciones debería haber sido de 0x0000 a 0x3FFF, lo que direccionaría la totalidad de los 16KB de flash, y el contador del programa debería haber sido de 14 bits para acceder a la memoria flash de 16KB completa. Estoy confundido con este choque entre la memoria flash total y el mapa de memoria flash.
¿A dónde me voy mal? Por favor ayuda. Gracias de antemano.