MC9S12G128内存映射(本地地址,逻辑地址,全局地址)
最近在搞飞思卡尔单片机,属于入门菜鸡的级别,现在总结下对于MC9S12G128内存映射,即主要是本地地址,逻辑地址,全局地址概念的理解,之前看.prm文件简直一头雾水,没有人可以问(因为大家都很忙),自己琢磨了一阵觉得有些头绪,网上的资料很多,但是绝活哥及大佬只是高屋建瓴的一笔带过,剩下我这个菜鸡原地一脸懵逼,如有错误,欢迎指正。
上图
上图简直不要太经典,简直不要太简练
16位单片机,最大寻址能力即2的16次方,65535/1024=64k,当flash内存大于64k时,地址怎么索引呢,即有了分页窗口的说法。
本地地址,就是0到64k,在寻址范围内的地址,16k一页,共四页
0x0000-0x3FFF(包含寄存器空间,D-flash,RAM,EEPROM)
0x4000-0x7FFF
0x8000-0xBFFF(分页窗口)
0xC000-0xFFFF
逻辑地址,就是指分页窗口的地址,可以索引到超过寻址范围的地址
拿MC9S12G128来讲,128k,一页16k,共8页,地址命名就是分页窗口号加上分页窗口地址,飞思卡尔HS12系列最大flash是240k即16页,刚好是0-F,对于MC9S12G128来说,分页窗口号是从F开始递减的,也就是8-F(F->8好理解一些)具体命名如下也就是地址如下:
08 8000 - 08 BFFF
09 8000 - 09 BFFF
0A 8000 - 0A BFFF
0B 8000 - 0B BFFF
0C 8000 - 0C BFFF
0D 8000 - 0D BFFF(对应4000-7FFF)
0E 8000 - 0E BFFF
0F 8000 - 0F BFFF(对应C000-FFFF)
全局地址,就是可以将flash线性索引的一串地址规则,规定也是由0x3FFFF开始往上数,具体命名如下:
0x20000-0x23FFF
0x24000-0x27FFF
0x28000-0x2BFFF
0x2C000-0x2FFFF
0x30000-0x33FFF
0x34000-0x37FFF(对应4000-7FFF)
0x38000-0x3BFFF
0x3C000-0x3FFFF(对应C000-FFFF)
不知道为什么对这些玩意特别纠结,想知道什么意思却求而不得,等弄明白好像也就那么回事。
可以对照PRM文件具体理解
ps,上图是针对MC9S12G系列的泛化,不要一一对应,否则就很难理解。
写的有点干,没有地图资源可以拿,希望大家多多指点。
————————————————
版权声明:本文为CSDN博主「叶之风刃」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42387372/article/details/114340237