飞思卡尔 HCS12(x) memory map解说之3 .
来源:互联网 发布:php 模板引擎 编辑:程序博客网 时间:2024/06/05 04:47
了解XS128的MEMORY map和core,对充分榨取他的现有资源,合理分配RAM很有帮助。上次讨论到cpu12内核的DG系列单片机,基本上该涉及的东西都有所提及。包括:
我们用C语言的过程中,把这些东西都忽略了,这个是内核的东西。简单地说,因为内核会自动调用不同的指令去把你C语言译成机器码。机器码就指令集的表示了。因此,内核的先进性和编译优化过程让你不要管了了。
1 MEMORY map的原因,为什么要搞这个概念出来。
2 MEMORY map包含的内容,有那三点...
3 一些相关的概念性的东西。
2 MEMORY map包含的内容,有那三点...
3 一些相关的概念性的东西。
如果不明白,看看前面几篇文章就会明白一些的。
这次再补充三个概念,希望能引起大家的注意和进一步讨论:
1 在PRM里设置了映射之后,怎么把程序或变量放在那个地址区呢?比如:我就想把int a;这个a分配到未分页的RAM1区,怎么办?
1 在PRM里设置了映射之后,怎么把程序或变量放在那个地址区呢?比如:我就想把int a;这个a分配到未分页的RAM1区,怎么办?
这个说来话太长。
简单地说用:#pragma DATA_SEG [xxxx] <segment_name>。如果没有#pragma DATA_SEG,全局变量将会被放到DEFAULT_RAM段中。当然,如果这个变量频率引用的话,放在非分页RAM1区可以提高他的读取效率,毕竟他不需要RPAGE参与寻址,是near寻址,而不是far,用简单的指令就可以搞定。
同样,如果反复调用一个函数,把这个函数放在非分页flash里也有异曲同同之妙。
关于这个问题的详细讨论,张教主有一篇文章,还有一个DP512的PPT都有讲解。大家可以网上下载看看,如果需要,也可以向我email要.
2 建程序里的SAMLL BANKED LARGE是什么作用?
SMALL平面的64K的地址空间。所有的函数都是near。BANKED采用分页地址。所有的用户的函数都被默认为far。far类型的数据指针可以在SMALL和BANKED中使用LARGE, 默认为数据和代码均为分页模式。所有的函数和数据指针都是far类型。这种内存模型运行时间比较长,因此很少使用.用LARGE基本上浪费了16位机寻址64K的优势。
因此,用SMALL和BANKED模式的较多。大家可以看看建工程时SMALL和BANKED模式下有什么不同?映射是一样的,只是DEFAULT_ROM和NON_BANKED有无分开的区别。
3 分页明白了,但是分页映射之后怎么用分页里面的数据?
3 分页明白了,但是分页映射之后怎么用分页里面的数据?
比如 const int a;我把他放在PAGE_3C里面,我如何通过计算PPAGE找到这个a呢?
我们用C语言的过程中,把这些东西都忽略了,这个是内核的东西。简单地说,因为内核会自动调用不同的指令去把你C语言译成机器码。机器码就指令集的表示了。因此,内核的先进性和编译优化过程让你不要管了了。
这样说是因为,随后的博文里将更进一步讨论XS128的memory部分。xs128有128KP-FLASH(ROM) 8KRAM8KD-FLASH( EEPROM) ,有某些分页用不到,比如RAM分页,因为逻辑地址是$2000-$4000,有8K空间,无需分页。但是大一点的RAM的话,就必须要分页了。这么多分页(还有FLASH肯定是要分页了,不分页程序就装不
下去),怎么管理呢?总得有个东西来统筹一下吧.
- 飞思卡尔 HCS12(x) memory map解说之3
- 飞思卡尔 HCS12(x) memory map解说之3 .
- 飞思卡尔 HCS12(x) memory map解说之3 .
- 飞思卡尔 HCS12(x) memory map解说之2
- 飞思卡尔 HCS12(x) memory map解说之2 .
- 飞思卡尔 HCS12(x) memory map解说之2 .
- 飞思卡尔 HCS12(x) memory map解说(1)
- 飞思卡尔 HCS12(x) memory map解说(1) .
- 飞思卡尔 HCS12(x) memory map解说(1) .
- 飞思卡尔 HCS12(X)系列 MCU 的 Prm 文件中的逻辑地址和全局地址的转换
- 飞思卡尔智能车HCS12芯片学习笔记
- 【图文解说】基于飞思卡尔MC9S12XS的Flash擦除和写入操作
- 【转载】图文解说:基于飞思卡尔MC9S12XS的Flash擦除和写入操作
- 飞思卡尔XS128之看门狗
- 飞思卡尔k60从零开始之PLL
- Memory Map
- Memory Map
- 飞思卡尔
- linux-Vi使用方法(备查)
- 飞思卡尔 HCS12(x) memory map解说之2 .
- 超链接下载文件,而不是浏览器打开哦
- 让listbox自动滚动或者说滚到最底
- 用javascript实现的TreeTable, 可以当做树(Tree)用
- 飞思卡尔 HCS12(x) memory map解说之3 .
- .net访问网站的是手机还是PC
- extern及多文件的用法
- Alpha混合物体的深度排序
- ActionSupport 类型转换与输入校验
- the relationship of view, doc and frame
- 如何编写一个好的测试用例
- 待学习ing...
- 安卓2.3.4如何不恢复出厂设置删除gmal账号