飞思卡尔hcs12(x)memorymap解说之

飞思卡尔hcs12(x)memorymap解说之

ID:8870569

大小:183.50 KB

页数:5页

时间:2018-04-10

飞思卡尔hcs12(x)memorymap解说之_第1页
飞思卡尔hcs12(x)memorymap解说之_第2页
飞思卡尔hcs12(x)memorymap解说之_第3页
飞思卡尔hcs12(x)memorymap解说之_第4页
飞思卡尔hcs12(x)memorymap解说之_第5页
资源描述:

《飞思卡尔hcs12(x)memorymap解说之》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、飞思卡尔HCS12(x)memorymap解说之1[原]热16已有905次阅读2010-01-2614:41标签:mapmemory卡尔解说对于用MCU的人来说,不一定要明白HCS12(x)memorymap的机制和联系。因为如果没有系统地学习操作系统和编译原理之类的课程,确实有些难度。并且,对于DG128XS128这样的MCU,默认的memory分配方式已经够用了。从这个意义上讲,搞清楚memorymap似乎不必要。但是,你有没有RAM不够用的情况?有没有想定义变量到FLASHROM的情况?有没有因为欲提高寻址效率而定义变量

2、到非分页区的情况?有没有写EEPROM但没写成功的情况?飞思的memory非常灵活,通过地址映射来提高效率是芯片制造商的一惯作风(当然,首先这个CPU要有这种寻址和内存映射转换机制),但是,纵观HCS12(x)memorymap的东西,真是做到极限了。用我以前的话讲是,用有限的资源获得无限的好处了。看看DG128,64K的逻辑空间,映射之后RAMEEPROMFALSHROM,都可以充分发挥作用,而且扩展FLASH也方便。而XS128更高级一筹,有专门的MMC管理HCS12(x)memorymap。我大体上了解这两个片子的HCS

3、12(x)memorymap,因此就此谈谈理解和看法,如有错误,请大家不吝指出首先,说说6个概念。1memorymap地址映射,不要理解成内存映射,内存是RAM。2为什么要映射?因为CPU的寻址是对物理地址操作,但是单片机的RESET之后只有相对地址。相对地址,我理解为是一块一块的,不是连断的。相对地址,顾名思义,是个相对的,没有映射之前,CPU是找不到他的,也用不了相对地址的数据。粘一句百度上的解释:为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址,这一过程称为地址映射

4、。3RAM,这个不多说,是存变量和栈的东西,高速,掉电即失。4EEPROM,这个是一种特别的FLASH。一般用来保存少量数据,掉电不会丢失。FLASH也是非易失的,SD卡就是一种FLASH。EEPROM和普通FLASH的区别,在于读写时的字节操作上。这个我基本上没有体会,因为是相当底层的东西。5FLASH和ROM,在HCS12(X)里,建议把FLASH和ROM等同起来理解。大家的程序就是放在这里面的。还有一个CONST变量和中断向量也是存在这里面的。ROM可能有个误区,只能读不能写,一次性的,不错。但是,有加个前提,应该是可控

5、的ROM。6还有一个重要的register空间,这个是存放I/0地址和单片机可编程寄存器的空间,是厂家定义的。在头文件里可以看到。如externvolatilePORTABSTR_PORTAB@(REG_BASE+0x00000000)就是典型的register空间映射。我把memorymap理解成为3个内容:一个是映射管理,一个是分页机制,一个是寻址的问题。映射管理,就是单片机RESET之后,逻辑地址和物理地址之间的关系。分页机制的产生主要由于16位寻址能力有限,需要分页解决,另外在虚拟内存管理上可以获得更多的优势。至于,C

6、PU寻址的问题,这个就不深纠了。这次以DG128的为例,XS128的稍复杂一些。理解了DG128的,XS128的问题就不大。先说一说映射管理:DG128里通过设置INITRG、INITRM、INITEE来实现映射。具体的设置看DS吧。默认情况下:register空间映射到0X0000到0x03FF,这个优先级最高。RAM空间映射到0x0400-0X1FFF,看到没有,实际上只有7K,也就是说能用的RAM只有7K。但是,DG128的RAM有8K的逻辑空间啊。所以,可以改INITRG、INITRM、INITEE重映射以提高RAM的

7、实际可用空间。怎么改,看需要了。WJ在这里逻嗦一句,可以看看PE是怎么改的。而FLASH映射了3个,有两个非分页地址0x4000-0x7FFF和0xC000-0xFEFF。还有一个分页地址,这一个分页地址有6个页面。6个页面占用一个分页窗,用一个逻辑空间,如何让这6个页面协作工作并让CPU能找到他们呢?这就是分页管理机制的内容。这6个页面分别是:PAGE_38=READ_ONLY0x388000TO0x38BFFF;PAGE_39=READ_ONLY0x398000TO0x39BFFF;PAGE_3A=READ_ONLY0x3

8、A8000TO0x3ABFFF;PAGE_3B=READ_ONLY0x3B8000TO0x3BBFFF;PAGE_3C=READ_ONLY0x3C8000TO0x3CBFFF;PAGE_3D=READ_ONLY0x3D8000TO0x3DBFFF;上面说的大家可以新建一个DG

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。