freescale memory map笔记(9S12XDP512)
来源:互联网 发布:数控简单编程教程视频 编辑:程序博客网 时间:2024/06/10 14:56
春节期间,闲来无事,研究下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__FAR_DATA,2>.要使用#pragma DATA_SEG __RPAGE_SEG PAGED_RAM。EEPROM和FLASH的访问原理和RAM一样。
3. local address和global address是可以相互转换的,具体看freescale芯片手册的map图,这里要注意一下就是,RAM,FLASH,EEPROM的转化范围:
internal resource
Bottom address
Top address
Register
0x00_0000
0x00_07FFF
RAM
0x10_0000减去RAM SIZE
0x0F_FFFF
EEPROM
0x14_0000减去EEPROM SIZE
0x13_FFFF
FLASH
0x80_0000减去FLASH SIZE
0x7F_FFFF
上述表格是global address的转化范围,如果项目中需要这种转化的话,需要提供接口:local_add_to_global_add()及global_add_to_local_add().
4.访问global address需要用到GPAGE。
5. 关于PAGE寄存器,不需要人为去设置
6. X系列的MCU不能进行地址映射,即不能用INITRM等寄存器来重新进行地址的映射。
- freescale memory map笔记(9S12XDP512)
- freescale Project.map 详解
- S3C6410 Memory Map & ARM 指令集 笔记
- Memory Map
- Memory Map
- Freescale MPC8641D 开发笔记
- freescale-imx6solo学习笔记
- Freescale 9S12 系列单片机应用笔记(libmaker)
- Freescale 9S12 系列单片机应用笔记(SCI)1
- Freescale 9S12 系列单片机应用笔记(SCI)2
- Freescale 9S12 系列单片机应用笔记(SCI)3
- Freescale单片机应用笔记-开篇
- Freescale i.MX6Q MEMORY CONFIG
- CMOS Memory Map
- Memory Map (x86)
- jmap - Memory Map
- 存储器映射 Memory Map
- Default memory map(ARM)
- Java招谁惹谁了?
- 字符串分割函数
- 富二代建俱乐部控制千亿资本 平均身家过亿
- MFC学习笔记(6)
- 没闲着
- freescale memory map笔记(9S12XDP512)
- 2010-02-16
- [转]一些漢字、字體/字型、内碼、輸入法資料的整理
- 韩寒给我的感觉----他就像一疯狗逮着谁咬谁
- [转]Unicode 汉字数据库
- hdu acm1097
- 丁鹏翔的私密空间
- 数字金额转中文大写
- [译]Windows 古僻汉字输入方法