历史上的今天
返回首页

历史上的今天

今天是:2025年08月12日(星期二)

正在发生

2021年08月12日 | 飞思卡尔 HCS12(x) memory map解说之2 .

2021-08-12 来源:eefocus

接着上次的说吧。

首先问一个问题:
中断函数为什么要加:#pragma CODE_SEG __NEAR_SEG NON_BANKED 这个声明?这个声明是干什么用的?


这要还是要从FLASH分页和非分页的区别说起。
   

下面详细说一说,FLASH里非分页和分页的使用。 要明白一点,分页是不可见的,要用的时候PPAGE参与寻 址。
  

1 FLASH里非分页工作机制
  

FLASH一共为128K,一页是16K,那么应该有8页才是,但是实际只有6个分页。有2个非分页放在4000-7FFF ,和C000-FFFF两个逻辑地址窗里。那么,当程序的寻址在64K之内(2^16=64K,16位机的寻址能力是64K)时, 就不用分页了,直接使用那两个非分页的数据。实际上,3E页 3F页是可见的,其实他们就是那2个非分页的映 射。因此,使用非分页FLASH,就不须设置PPAGE寄存器,直接使用逻辑地址即可。见图1。
  

这点我们可以从以下看出:

/* non-paged FLASHs */
      ROM_4000      = READ_ONLY     0x4000 TO   0x7FFF;
      ROM_C000      = READ_ONLY     0xC000 TO   0xFEFF;
PLACEMENT
      NON_BANKED,    INTO  ROM_C000/*, ROM_4000*/;
    
很直观地看出,把这两个可以直接使用逻辑地址的页面设为NON_BANKED, 那么中断函数放在NON_BANKED里 ,就可以把函数放在64K的寻址程序段中。这么一来,进中断就方便多了,效率也高很多。这就是对本文开篇 的解释。
   

大家记住这一点,在XS128里也有类似的一招。
  

2  FLASH里分页工作机制
   

好了,上面是3E页 3F页是可见的分页区,还有3D 3C 3B 3A 39 38不可见的分页区。当你的程序要寻址 64K以外的空间,即不是是可见的3E页 3F页时,就要涉及分页了。
   

PPAGE是MMC模块的东西,我搞了个图片大家看看,如图2。每一页在DG128中的逻辑地址都是由PPAGE中的 页号和重叠窗口内地址组成的24位绝对地址。通过设置寄存器PPAGE,可以使用全部的FLASH空间。例如:程序 要将数据存入$3D页,设置PPAGE的值为$3D,那么逻辑地址范围说是$3D8000-$3DBFFF。有一点要注意:为了分页描述的完整性,可以如下理解:对于3E页 3F页有两个逻辑地址映射到物理地址。拿3E页来说,有$004000-$007FFF和$3E8000-$3EBFFF。
  

对于程序是如何寻址,这个是内核的东西,大家可以看看CPU这个文档。
  

通过分析,相信大家知道地址这个东西是非常有用的吧。下次说说XS128,XS128的RAM FLASH EEPROM都可 以分页。更高级,更主动,编程弹性更大。


   
                                                               图1



推荐阅读

史海拾趣

C-MAC Automotive公司的发展小趣事

随着公司实力的不断增强,C-MAC Automotive公司开始实施全球化战略。公司先后在欧美和亚洲等地设立研发中心和生产基地,以便更好地满足当地市场需求。通过全球化布局,C-MAC不仅拓宽了市场渠道,还降低了生产成本,提升了整体竞争力。此外,公司还积极参与国际技术交流和合作,不断提升自身的技术水平和创新能力。

Bel Fuse公司的发展小趣事

在发展过程中,Bel Fuse注重与合作伙伴建立长期稳定的合作关系。公司积极寻求与全球知名企业的合作机会,通过技术合作、资源共享等方式,共同推动电子行业的发展。这些合作伙伴关系的建立不仅为公司带来了更多的业务机会,还提升了公司的技术水平和市场竞争力。

BRIGHT公司的发展小趣事

BRIGHT公司不仅在电子产品领域取得了成功,还积极拓展酒店业务。他们成立了伯瑞特酒店集团,并在全国范围内开设了多家酒店。这些酒店以高品质的服务和独特的文化特色赢得了广大消费者的喜爱。其中,宁波伯瑞特酒店荣获了全国钻级酒店评定中的五钻酒家称号,千岛湖伯瑞特度假酒店也获得了金鼎特色文化主题饭店的荣誉。这些荣誉的获得不仅彰显了BRIGHT公司在酒店业务方面的实力,也为其未来的发展奠定了坚实的基础。

思瑞浦微电子科技(3PEAK INCORPORATED)公司的发展小趣事

近年来,BRIGHT公司积极投身于太阳能领域的发展。他们推出了一种创新的商业模式,即帮助用户免费安装太阳能面板,并随后收取服务费。这一模式类似于有线电视的收费方式,有效降低了用户安装太阳能系统的门槛。通过与私人投资者的合作,BRIGHT公司成功承担了安装成本,并致力于向全球提供优质的屋顶太阳能解决方案。这一突破性的举措使得BRIGHT公司在太阳能领域取得了显著的成绩。

Charcroft Electronics Ltd公司的发展小趣事

随着产品线的不断丰富和技术实力的提升,Charcroft Electronics Ltd公司开始积极拓展国内外市场。公司加强与国际知名企业的合作,通过参加国际电子展会、举办技术研讨会等方式,提升品牌知名度和影响力。同时,公司还针对不同地区的市场需求,推出定制化的产品和服务,进一步巩固和扩大市场份额。

Custom Connector Corporation公司的发展小趣事

在追求经济效益的同时,CCC也注重环境保护和可持续发展。公司积极采用环保材料和生产工艺,减少对环境的影响。同时,CCC还积极参与环保公益活动,推动环保理念在员工和社会中的普及。这种环保理念不仅提升了CCC的企业形象也为其在竞争激烈的市场中赢得了更多优势。

请注意,以上故事仅为概述,具体内容和细节可能需要根据实际情况进行补充和完善。同时,由于篇幅限制,每个故事的字数可能无法完全达到500字的要求。

问答坊 | AI 解惑

仪器仪表类题目分析.doc

仪器仪表类题目分析.doc…

查看全部问答>

用万用表能测到晶振起振电压,而用示波器测不到,请教原因?

我用万用表可以测到晶振的起振电压,接上示波器,测不到电压和频率,请教各位大哥这个是不是示波器探针电容的影响? 示波器的设置:探针 为  *10  挡,交直流都试过了 …

查看全部问答>

无线网卡资料

无线网卡资料    无线部分自己做有很大难度 了解一下吧…

查看全部问答>

MC35i 中文资料

谁有MC35i的datesheet啊,发我一份。 邮箱 wyz1986111@163.com 收到立即给分 …

查看全部问答>

网卡驱动安装后,网络连接里怎么没有

网卡驱动我用的DDK的例程,isdnwan,编译好后进行安装,可以看到驱动和网卡都安装了,但是在网络连接里怎么没有啊,不懂,求助…

查看全部问答>

急!!!zinc的图形界面可以用VxSim仿真出来吗??

我创建了一个下载型工程,就用zinc中Hello的实例做的,在下载的时候老是出现这个错误: Errors while downloading G:/tornado2.2/target/proj/Project1/SIMNTgnu/Project1.out: _LinkMain__14ZafApplication _Control__14ZafApplicationUi ___1 ...…

查看全部问答>

谁知道三星 s3c6400 处理器的报价啊

谁知道三星 s3c6400 处理器的具体报价啊?ARM11的那个,iphone用的那个。…

查看全部问答>

请教ST_ARM

  我用STR710的Bank1扩展了16M的外部Flash存储器。连接时STR710的地址线、数据线、读、写控制线与外连的Flash进行了相应的连接。   我想请教的是:在IAR EWARM环境下对外部Falsh写数据时,我除了要使能BANK1, ...…

查看全部问答>

发几个用CORDIC快速求三角函数的定点程序

最近在做FFT,发几个用到的三角函数计算程序 #define DSP32_Q(x) ((int) ((x)*(((unsigned) (1 << (20)))))) const int atanLUT[20] = { DSP32_Q(0.78539816340), DSP32_Q(0.46364760900), DSP32_Q(0.24497866313), DSP32_Q(0. ...…

查看全部问答>

TMS570LS0432 原理图库

TMS570LS0432 原理图库 环境:99SE …

查看全部问答>