系统内可编程的Flash 程序存储器 ATmega168具有16K 字节的在线编程 Flash,用于存放程序指令代码。因为所有的AVR指令为16 位或32 位,故而 Flash 组织成8K x 16。 对于 ATmega168,用户程序的安全性要根据Flash程序存储器的两个区:引导(Boot)程序区和应用程序区分开来考虑。 ATmega48中没有分为引导程序区和应用程序区,SPM 指令可在整个Flash中执行。详见P235“存贮程序存储器(SPM)控制和状态寄存器 – SPMCSR” 与 P243 中 SPMEN 部分的描述。。
Flash存储器至少可以擦写10,000次。ATmega168的程序计数器(PC)为12位,因此可以寻址8K 的程序存储器P234“Flash自编程, ATmega48” 与P240“Boot Loader支持RWW自编程,ATmega168 ” 。而 P254“存储器编程” 详述了用SPI引脚接口实现对Flash数据的 串行下载。
常数可以保存于整个程序存储器地址空间( 参考LPM 加载程序存储器指令的说明)。取指与执行时序图请参见 P11“ 指令执行时序”。
以下分别是ATmega48 和 ATmega88、ATmega168 的程序存储器映像示意图。
|