HCS12单片机的PRM文件和数据手册中FLASH的对应

[复制链接]
682|5
手机看帖
扫描二维码
随时随地手机跟帖
tao180539|  楼主 | 2016-9-26 17:36 | 显示全部楼层 |阅读模式
盛夏的葡萄| | 2016-9-27 16:04 | 显示全部楼层
楼主,MC9S12XET256这个型号,flash看第25章(256 KByte Flash Module)。
碰巧现在也用这个型号,我也刚刚接触freescale的芯片,可能理解的不对,仅供参考。
先看206页的3-17这图,flash全局地址和映射编号(我自己这样叫)。4Mflash空间被分成了256个16K。全局地址从0x400000到0x7fffff。
所以得出:
全局地址[0x7f0000,0x7f3fff]对应编号0XFC.
全局地址[0x7f4000,0x7f7fff]对应编号0XFD.
全局地址[0x7f8000,0x7fbfff]对应编号0XFE.
全局地址[0x7fc000,0x7fffff]对应编号0XFF.
这样计算:映射编号 =( (全局起始地址-0X400000)/0x10000)*4

使用特权

评论回复
tao180539|  楼主 | 2016-9-29 08:16 | 显示全部楼层
盛夏的葡萄 发表于 2016-9-27 16:04
楼主,MC9S12XET256这个型号,flash看第25章(256 KByte Flash Module)。
碰巧现在也用这个型号,我也刚刚 ...

不是这样的老兄 你QQ多少 我加上你 交流一下

使用特权

评论回复
xiaohua880123| | 2016-9-30 09:50 | 显示全部楼层
需要看LINK FILES里的BURNER.BBL文件,因为那个文件才是用来处理你的逻辑地址和全局地址关系的,PRM文件只是帮你分配分页和非分页的地址。
比如:
在BURNER.BBL里有
origin = 0x3E8000
destination = 0x0F8000
SENDBYTE 1 "%ABS_FILE%"
在PRM文件里有
ROM_C000      = READ_ONLY     0xC000 TO   0xFEFF;
/*    PAGE_0F       = READ_ONLY   0x0F8000 TO 0x0FBEFF; not used: equivalent to ROM_C000 */
说明全局地址是 0x3E8000开头 对应的逻辑地址是 0xC000开头。
你写FLASH也需要用全局地址,反正datasheet有个寄存器就是写全局地址序列的,请自己看手册
读Flash也需要用全局地址。  unsigned char readvar=*(unsigned char*)0x3E8000;这是读0x3E8000所在地址里面的字节
希望我说得能帮到你

使用特权

评论回复
tao180539|  楼主 | 2016-9-30 16:09 | 显示全部楼层
xiaohua880123 发表于 2016-9-30 09:50
需要看LINK FILES里的BURNER.BBL文件,因为那个文件才是用来处理你的逻辑地址和全局地址关系的,PRM文件只 ...

非常感谢

使用特权

评论回复
aundry| | 2016-9-30 19:59 | 显示全部楼层
有分页的,不管flash还是ram,在中断切换page还会跑飞

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

321

主题

514

帖子

3

粉丝