首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

请教strongchen

请教strongchen

请教斑竹strongchen:


在MC9s12d32的资料里看到1K Bytes EEPROM(Mappable to any 2K boundary; 1K mapped two
times in the 2K address space) 他标注的地址为$0000-$07ff


我想知道这1kEEPROM到底是在$0000-$03ff还是$0400-$07ff


下边以MC9s12d32为例,MC9s12d32内部资源为RAM=2K;EEPROM=1K;


我的设置为: INITRG=#0; INITRM=#09H; INITEE=#01H;


我的理解为:


INITRG=#0;    -->特殊寄存器(register memory)映射的地址为 $0000--$03FF (1k)


INITRM=#09H;  -->内部RAM映射的地址为 $0800--$0FFF (2k)


INITEE=#01H;  -->EEPROM memory映射的地址为 $0000--$07FF,但由于$0000--$03FF


                 被(register memory)占用,所以EEPROM memory映射的地址为


                 $0300--$07FF (1k)


请问斑竹这种分配方法是否合理和正确,尤其是在EEPROM memory的映射上

饿额
1K mapped two times in the 2K address space中的two times 如何理解
饿额
EEPROM本身是1K的,它必须映射到一个2K的地址中,此时,由于系统内部构造的原因,EEPROM实际上在这个2K空间的高1K地址区和低1K地址区都看得到,而且你对一个地址区写数据时,另一个数据区也发生同样的改变。所以,它们实际上是一个镜像。因此,如果你要使用EEPROM的话,一定要把它映射到一个没有寄存器和RAM占用的2K空间上,这样才不会被覆盖掉。
海纳百川  有容乃大
斑竹strongchen乃高人,小弟佩服
饿额
返回列表