春节期间,闲来无事,研究下freescale芯片的内容分配规则,现做如下若干总结(以S12XDP512为例,且无外挂内存):
1. RAM, FLASH, EEPROM的内存扩展需要用到PAGE寄存器,分别是:RPAGE, PPAGE及EPAGE。通过这几个寄存器可以扩展内存空间。
2. 对于RAM来说,address分为两种形式:fixed和paged,fixed address是0x2000-0x4000,总共8K byte。这是local address的形式,global address形式的地址为:0x0F_000-0x0F_FFFF。paged address是通过RPAGE来访问的,该芯片是32K的RAM,fixed address占了8K,所以,通过RPAGE访问的internal memory只能访问24K。同时,freescale芯片手册规定用RPAGE访问内存是4K一个单位的。因此,我们通过RPAGE访问internal memory,只能变化RPAGE的值,变化6次就可以完全访问到的. 这些变化完全是编译器自动做的,我们只需要在prm文件中,配置好就可以用了。具体看prm文件,其中,分为non_paged和paged,paged是通过RPAGE + local windows address来表示的。例如:0xF8_1000-0xF8_1FFF,F8就是RPAGE的值,如果我们要用到paged RAM,那么,要做2件事情:1>.需要在编译器的option里增加这个 -D__FA