历史上的今天
返回首页

历史上的今天

今天是:2025年05月18日(星期日)

正在发生

2021年05月18日 | MSP430单片机的FLASH与存储器结构(1)

2021-05-18 来源:eefocus

简介:
我们这节课的主要内容有:
·存储器结构
·片内ROM组织
·RAM和外围模块组织
·FLASH存储器
·FLASH操作程序设计


1,存储器结构


1.1存储空间的组织结构

我们先来看一下MSP430的存储空间的组织结构,大家可以看到,MSP430是按照64K的存储空间来处理的,只不过不同型号的单片机它内部的容量发生了一些变化。像有些单片机RAM会很大,flash想回会小一些;还有一些flash和RAM都很小,中间空出来的就是作为保留区域,像我们使用的这个149单片机的话,使用的60K的flash,flash空间就是从0FFFFh-01100h。还有就是1K的启动ROM,然后这是RAM的地址,然后下面这里的地址都是外设寄存器的区域。这就是整个MSP430F149的内部存储空间的一个结构。


大家可以来看一下,这个区域其实是中断向量的地址。用户代码其实是放在这个区域的。


1.2 FLASH存储空间


Flash存储的时候是按照分段来的,大家来看一下这里,从0FDFFh-0FC00h就是一个段,这个段有512个字节,其实在整个区域中分成了很多段,并且每段都有512字节。操作flash的时候,可以将1写成0,但是如果它已经写成0了,要向改变它的话,就需要先把整个段擦除,擦出一段之后才可以再进行修改,这个在下面详细介绍FLASH的时候会再做一个更加详细的介绍的。


1.3 内部存储器类型与结构


我们应该知道,典型微型计算机的存储器都是采用的冯·诺依曼结构,也称为普林斯顿结构,即存放程序指令的存储器--程序存储器和存放数据的存储器--数据存储器采取统一的地址编码结构。程序存储器和数据存储器分开的地址编码结构称为哈佛结构。如MCS-51系列微处理器。MSP430采用冯·诺依曼结构,全部寻址空间为64K字节。需要注意的是,最然MSP430是16位的微处理器,但其寻址空间还是按照字节来计算的。


MSP430内部存储器的类型有:程序存储器FLASH、数据存储器RAM、外围模块寄存器、特殊功能寄存器。


1.4 具体地址划分


我们来看看存储器地址的具体划分:


从0 至0xF 为特殊功能寄存器。共16 个字节,包含中断标志寄存器1(IFG1)、中断标志寄存器2(IFG2)、中断允许寄存器1(IE1)、中断允许寄存器2(IE2)、模块允许寄存器1(ME1)、模块允许寄存器2(ME2)。


从0x10 至0x1FF 为外围模块寄存器。包含被定时器、AD 转换器、对外端口等模块用到的寄存器。


从0x200 开始为数据存储器RAM。不同型号中数据存储器的大小不同,但都是从0x200 地址开始向高端地址扩展。如MSP430F149 的数据存储器容量为2KB,其地址范围即为0x200~0x9FF。


从0x1000 到0x107F 是128 个字节的FLASH 存储器,称为信息存储器B。此段存储器与高端地址存储代码的FLASH 存储器本质上没有任何不同,同样也可以存储代码并执行,只是这一段存储器的长度较小,只有128 个字节。主要用来存储一些掉电后仍需保存的数据。由于它是FLASH 存储器,因此可以按照字或者字节写入,但必须整段擦除。


2. 片内ROM组织 2.1 片内ROM组织

片内ROM可能有各种体积,可达60KB。公共地址空间由SFR、外围模块寄存器、数据存储器和程序存储器共享。SFR和外围模块安排在0000h~01FFh的空间中,余下的地址空间0200h~0FFFFh由数据存储器和程序存储器分享。


ROM的开始地址因ROM的体积不同而不同。中断向量固定位于ROM的最高16个字地址区。其中最高优先级的向量位于最高的ROM字地址0FFFEh。这幅图是MSP430不同型号的FLASH型芯片ROM地址分布举例。


2.2ROM表的处理


MSP430的结构允许ROM存放大型数表。这在编制快速而结构清晰的程序时往往是必须的,并且能减少对ROM及RAM的占用.访问这些表可以用所有的字指令和字节指令,这一点给增加编程的灵活性和节省ROM空间带来好处,如:


·用ROM存放用于显示的字符点阵。


·实现计算型数表访问,例如用于显示动态条形图。


·实现查表方式的程序流向控制。


·将数据存入表中作查表处理,以实现数据线性化和补偿。


2.3计算分支跳转和子程序调用


可以用标准指令实现计算分支跳转和子程序调用。CALL和BR指令与其他指令采用同样的寻址方式。


计算分支跳转和子程序调用最理想的寻址模式是间接寻址。充分利用这一编程特点可以得到与常规8位、16位单片机不同的程序结构。利用软件对状态的处理可以方便地实现大量的子程序调用,而不必像通常那样利用“标志”判断来控制程序流向。


计算分支跳转和子程序调用在整个64KB空间内都有效。


3RAM和外围模块组织


3.1 RAM和外围模块组织


利用适当的指令后缀,整个RAM都可按字节或字来访问。外围模块安排在两类地址空间,因此必须用适当的指令来访问,即


※SFR硬件是面向字节的,安排在地址0h~0Fh,只能用字节指令。


※面向字节的外围模块安排在地址010h~0FFh,只能用字节指令。


※面向字的外围模块安排在地址100h~01FFh,只能用字指令。


3.2RAM


RAM可以用作程序代码存储器,也可以用作数据存储器。对程序代码的访问总是针对偶地址的。


对堆栈和PC的操作总是字操作,必须对准偶地址。


字-字和字节-字节操作同样能得到准确的操作数结果和状态位设置。


3.3外围模块-地址定位



地址空间0000h-00FFh留作安排字节模块,地址空间0100h-01FFh留作安排字模块。安排在字地址空间的必须用字指令访问,安排在字节地址空间的必须用字节指令访问。


这两种寻址可经过绝对寻址模式实现,也可以经过采用变址、间接或间接增量寻址模式的工作寄存器来实现。我们现在所看到的图就是外围模块的空间分配及操作。


3.4字模块



字模块是经过全部16位MDB连接的模块。字模块可以字指令或字节指令访问。但是用字节指令访问时,只有偶地址有效,高字节的访问结果总是0。


字模块的寻址空间分割成16个帧,每帧有8个字,我们现在所看到的图就是字模块的空间分割图。


3.5字节模块



我们现在所看到的图是外围模块地址分配-字节模块,可以看出字节模块的地址空间被分成了16组。


字节模块是经MDB的低八位连接的模块。只能以字节指令来访问字节模块。在写操作时字节模块从MDB的低字节取数。


字节指令对字节模块的操作无任何限制。用字指令对字节外围模块作读访问会在高字节产生不可预知的结果。写入字节模块的字数据,低字节写入相应的模块寄存器,而高字节可忽略不计。


3.6外围模块-SFR



我们来看一下这张图,外围模块的配置和外围模块对CPU的响应由SFR的定义来确定。SFR位于更低的地址区,以字节方式工作。因此SFR只能用字节指令来访问。


系统的功耗受当前允许的模块数和模块功能的影响。禁止一个活动的模块会减少系统功耗。为减少功耗,应将不用的引脚接上适当的电平。

推荐阅读

史海拾趣

Dow-Key Microwave Corporation公司的发展小趣事

为了保持市场竞争力,Dow-Key Microwave始终将创新作为公司发展的核心动力。公司不断推出新产品、新技术和新服务,以满足客户不断变化的需求。同时,公司还加强对员工的培训和激励,鼓励员工积极参与创新活动。这些措施的实施,使得Dow-Key Microwave在技术创新和产品升级方面取得了显著成效,进一步巩固了公司在行业中的领先地位。

Apex Tool Group公司的发展小趣事

为了实现公司的国际化发展战略,Dow-Key Microwave积极开展国际合作与交流。公司与全球知名的电子企业和研究机构建立了紧密的合作关系,共同开展技术研发和市场开拓活动。这些合作不仅提升了公司的技术水平和市场影响力,还为公司的国际化发展提供了有力支持。同时,公司还积极参与国际展览和论坛活动,展示公司的最新技术和产品成果,进一步提升了公司的国际知名度和品牌形象。

CETC公司的发展小趣事

CETC深知人才是企业发展的根本。因此,公司一直注重人才培养和团队建设。公司设立了完善的培训体系,为员工提供各种学习和发展的机会。同时,CETC还积极引进国内外优秀人才,打造了一支高素质、专业化的团队。这支团队在公司的各个领域都发挥着重要作用,为公司的持续创新和发展提供了有力保障。

Hirschmann公司的发展小趣事
在自动化控制系统中,定时电路常用于实现各种定时控制功能,如延时启动、定时关闭、周期性操作等。这种可编程定时电路可以根据实际需求灵活设置延时时间和输出特性,满足复杂的控制要求。
Analog Power公司的发展小趣事

品质是Analog Power公司的生命线。他们深知只有提供高质量的产品和服务,才能赢得客户的信任和忠诚。因此,公司建立了严格的质量管理体系,从原材料采购到产品出厂的每一个环节都进行严格把控。同时,公司还注重客户反馈和需求,不断优化产品和服务,以满足客户的期望和需求。

DAPAudio公司的发展小趣事

在全球环保和可持续发展的背景下,DAPAudio也积极响应这一号召。公司投入大量资源用于研发环保型音频处理器产品,通过采用环保材料和节能技术降低产品对环境的影响。同时,DAPAudio还积极参与社会公益活动,推动音频行业的可持续发展。

请注意,以上故事均为虚构内容,仅供参考。如需了解DAPAudio公司的真实发展故事,建议查阅相关官方资料或新闻报道。

问答坊 | AI 解惑

【Labview】Labview 的特点

Labview的主要特点,在于它的编程方式的不同,下面让我们一起来初步了解一下: 数据流编程        LabVIEW编程语言,也被称为G语言,是一种数据流编程语言。程序员通过绘制导线连接不同功能的节点,图形化的程序框图(LV源代 ...…

查看全部问答>

求助:在EVC中使用ShellExecuteEx调用外部程序错误

在WinCE4.2上,使用的是EVC++4.0 单击一下按钮就调用一个外部程序 问题是我使用Debug版本的可以正常调用外部程序, 但使用Release版本的却没响应 代码如下: void CParaDlg::OnBtnTouch() {         CString strExeNam ...…

查看全部问答>

VB 2003 在 智能程序中 如何程序自身路径 ?????

VB 2003 在 智能程序中 如何程序自身路径  ????? 在 window 程序可以用 Application.StartupPath() ,但在 智能程序就用不了…

查看全部问答>

新生入学报到

各位大家好!我是新手,第一次进入本论坛,做个入学报到!!向大家学习!!…

查看全部问答>

谭浩强c语言word版

谭浩强c语言word版…

查看全部问答>

什么样的UI设计最能打动人心?【电子产品设计秘诀】

本帖最后由 jameswangsynnex 于 2015-3-3 20:02 编辑 以前的UI比较简单,多是文字、列表或者是一个小结构,而iPhone凭借良好的用户体验横空出世,建立起了一套全新的设计标准,一举将所谓的大佬们远远甩在了身后。于是,人们认识到:用户体验的重 ...…

查看全部问答>

电子精英或者有经验的新手请进

RS232模块  RS485模块      CAN总线模块  谁知道怎么做   请指点   不胜感激…

查看全部问答>

【MSP430共享】MSP430子程序(液晶控制器子程序)

//MSP430子程序(液晶控制器子程序) //作者:aileen 发表时间:2004-12-2 11:20:08 //声明:转载请保留以上信息,用于商业用途,请联系作者//------------------------------------------------------------// Control SED1335// Time 2003.01.15/ ...…

查看全部问答>

DSP-Sitara精品课程的课件

DSP-Sitara精品课程的课件很有参考价值!!!…

查看全部问答>

基于Hercules 的工业“安全”控制系统 上电小试

基于Hercules 的工业“安全”控制系统  焊接主要器件后 ,上电小试! 板子与XDS100V2很配吧! …

查看全部问答>