历史上的今天
今天是:2025年08月12日(星期二)
2021年08月12日 | 飞思卡尔 HCS12(x) memory map解说之3 .
2021-08-12 来源:eefocus
了解XS128的MEMORY map和core,对充分榨取他的现有资源,合理分配RAM很有帮助。上次讨论到cpu12内核的DG系列单片机,基本上该涉及的东西都有所提及。包括:
1 MEMORY map的原因,为什么要搞这个概念出来。
2 MEMORY map包含的内容,有那三点...
3 一些相关的概念性的东西。
如果不明白,看看前面几篇文章就会明白一些的。
这次再补充三个概念,希望能引起大家的注意和进一步讨论:
1 在PRM里设置了映射之后,怎么把程序或变量放在那个地址区呢?比如:我就想把int a;这个a 分配到未分页的RAM1区,怎么办?
这个说来话太长。
简单地说用:#pragma DATA_SEG [xxxx] 同样,如果反复调用一个函数,把这个函数放在非分页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有无分开的区别。 比如 const int a;我把他放在PAGE_3C里面,我如何通过计算PPAGE找到这个a呢? 这样说是因为,随后的博文里将更进一步讨论XS128的memory部分。xs128有128KP-FLASH(ROM) 8KRAM 8KD-FLASH( EEPROM) ,有某些分页用不到,比如RAM分页,因为逻辑地址是$2000-$4000,有8K空间,无需 分页。但是大一点的RAM的话,就必须要分页了。这么多分页(还有FLASH肯定是要分页了,不分页程序就装不下去),怎么管理呢?总得有个东西来统筹一下吧.
3 分页明白了,但是分页映射之后怎么用分页里面的数据?
我们用C语言的过程中,把这些东西都忽略了,这个是内核的东西。简单地说,因为内核会自动调用不同的 指令去把你C语言译成机器码。机器码就指令集的表示了。因此,内核的先进性和编译优化过程让你不要管了 了。
史海拾趣
|
附风庸雅,地摊万用表实测 -- 给不想买 FLUKE 的人们 理由就不多说了,只是简单罗列一些不完全的测试数据,对于不想或者觉得没有必要买 FLUKE 表的人们,或许有一定参考意义吧,参测表包括 1、我的 UT30F,高中时在普兰(柳州)购买,已经有十几年了;厂家数据为 0.5%+2 的直流精度,0.8%+2 的电阻精 ...… 查看全部问答> |
|
Je-Hyun Kim的可降解、由草覆盖的手机由干草和一些可降解材料制成。它曾作为2008年度的“自然年手机 (Natural Year Phone)”出现。它是首款具有保质期概念的手机。这款由草覆盖的绿色手机在自然中只需要经过简单的回收,在两年左右的时间就可以被 ...… 查看全部问答> |
|
一个被反复提及而未得到解决的问题:mc39i模块从数据模式切换到命令模式 问题就是: 硬件平台:ARM7+GPS+GPRS模块 操作系统:uclinux 当PPP拨号成功并联网之后,如何从数据模式切换到命令模式,然后收发短信和打电话 d ...… 查看全部问答> |
|
S3C2410用的Ucos操作系统,想利用GPRS模块向上位机发送数据,但是目前存在的问题是S3C2410利用串口1向模块发送数据后,想利用串口0接收返回的OK,但是接收不到任何信息,不知道为什么?… 查看全部问答> |
|
请问大家,我做了一个东西,自己做的矩阵键盘太不好看了,想买个键盘,就像银行柜台输入密码的那种按键做的,最好能显示键值,按1就显示“1”那种。我看中发没有,望大家帮忙,谢谢啦… 查看全部问答> |




