Topic permanente di programmazione newbie

Concordo con te. Ma la parte più significativa secondo me è la coppia di tabelle a pagina 284, dove spiega "chi" e "dove" può accedere. Vedi infatti le distinzioni fra area dell'applicazione ed area del booloader nonché i permessi della programmazione seriale e parallela.

Ah, piccola precisazione. Questo non è corretto:

la Application va da 0x0000 all’inizio della Bootloader, che è fissato dai fuse: 512-1024-2048-4096 byte

In realtà quei valori indicano la dimensione, non l'indirizzo di partenza. Il bootloader occupa sempre la parte più alta della memoria. Ma penso che tu abbia solo scritto male.

Comunque per chiarezza facciamo un esempio. Se abbiamo un Atmega168, la sua memoria va da 0000 a 16383 ($0000-$3FFF). Se impostiamo un bootloader di 512 byte, la memoria dell'applicazione va da $0000 a $3DFF, poi da $3E00 a $3FFF c'è il bootloader. In un 328, lo stesso bootloader occupa da $7E00 a $7FFF.