原创 系统内可编程的Flash 程序的寻址位宽

2009-3-12 15:54 3662 4 4 分类: MCU/ 嵌入式

ATmega128具有128K字节的在线编程Flash。因为所有的AVR指令为16位或32位,故尔FLASH 组织成64K x 16 的形式。考虑到软件安全性, Flash 程序存储器分为两个区:引导程序区和应用程序区。


Flash存储器至少可以擦写10,000 次。ATmega128的程序计数器PC为16位,因此可以寻址64K 的程序存储器。


RAMPZ 寄存器用于选择Z 指针访问的是哪一个64K RAM。由于ATmega128 不支持超过64K的存储器,因此RAMPZ只用来协助ELPM/SPM指令决定访问哪一个程序存储器页。不同的RAMPZ0 的作用如下:


RAMPZ0 = 0: ELPM/SPM 可以访问程序存储器地址$0000 - $7FFF ( 低64K 字节)
RAMPZ0 = 1: ELPM/SPM 可以访问程序存储器地址$8000 - $FFFF ( 高64K 字节)


从上面说明中可以知道:AVR128的程序存储器的地址位宽为16位(可寻址64K个地址,而程序存储器有128K个字节,所以一个地址对应一个字节是不够的,要一个地址对应两个字节),而且一个16位地址对应的存储数据也是16位的,即双字节也称半字,由此可知,程序存储器的数据位宽也为16位。


常数可以保存于整个程序存储器地址空间

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
4
关闭 站长推荐上一条 /3 下一条