MSP-EXP430G2 LaunchPad学习笔记:MSP430G2231存储器组织

发布者:TranquilBreeze最新更新时间:2021-07-16 来源: eefocus关键字:MSP-EXP430G2  LaunchPad  存储器组织 手机看文章 扫描二维码
随时随地手机看文章

摘要:

本文以MSP430G2231为例,整理了其存储器组织各个部分的内容,包括特殊功能寄存器、外围模块、RAM、FLASH、中断向量表。

 

PS:本文系学习MSP430的整理笔记,为了是将Contiki移植到LaunchPad。


一、存储器组织[1]

1.1 小模式

从0x0000到0xFFFF分别是:特殊功能寄存器SFR、外围模块、数据存储器、程序存储器、中断向量表。不同型号的存储器组织不尽不同,使用时得具体参考数据手册,但具有以下共性[1]:

(1)特殊功能寄存器、8位外围模块、16位外围模块地址范围一样

特殊功能寄存器 0x0000~0x000F;

8位外围模块 0x0010~00FF

16位外围模块 0x0100~0x01FF

(2)数据存储器开始于相同的地址,即0x0200

(3)中断向量(存放中断服务程序首地址)地址范围一样,即0xFFE0~0xFFFF

    所有器件的中断向量置于地址空间的最顶端,但其具体内容因器件不同而不同。

(4)代码存储器置于地址空间的顶端,即起始地址=0x10000-该器件的代码容量

(5)信息存储器(仅FLASH有)未必是挨着代码存储器,比如MSP430G2231,但容量皆是256Byte

(6)引导存储器(仅FLASH有)紧挨着信息存储器??,容量皆是1KB(有的器件没有)


数据存储器RAM一般用作保存数据及堆栈使用,特殊场合也可用于程序存储(做程序存储器时只能字操作)。代码存储器可存放指令代码、数据表格或者用户信息。


具体到某个型号的芯片,还得看数据手册,比如LaunchPad上面用的MSP430G2231[4]的存储器组织示意图如下:

看存储器映射图(Memory Map)会更形象,如下[3]:

二、特殊功能寄存器

特殊功能寄存器SFR位于地址空间的最低端,即0x0000~0x000F,共16个字节。MSP430G2231只用到4字节,这点可以从数据手册得到,如下:

图1 MSP430G2231特殊功能寄存器示意图


关于寄存器各位的含义,可参考数据手册。MSP430G2231特殊功能寄存器各位含义如下:

 

图2 MSP430G2231特殊功能寄存器各位含义示意图


三、外围模块

MSP430外围模块地址范围0x0010~0x01FF,分为字节寻址(0x0010~0x00FF)和字寻址(0x0100~0x01FF)。


3.1字模块

字模块是经16位总线相连的模块,这部分空间又被分割成16帧,每个帧8个字。每个字模块占用1~3帧[1]。MSP430G2231的字模块示意图如下[4]:

3.2 字节模块

字节模块是经总线的低8位相连,只能以字节的方式访问,若用字方式访问,会产生不可预期的结果。通常也分为16组,每组8字。MSP430G2231的字节模块示意图如下[4]:

四、RAM

MSP430数据存储器总是开始于相同的地址,即0x0200,本例RAM是128B,即从0x0200~0x027F。


五、FLASH

FLASH存储器分为主存储器和信息存储器(有些器件FLASH还含引导存储器),代码和数据可以放在任意一种存储区域,操作上没什么区别,但段的大小及物理地址不同。信息存储器是2个128Byte的段(Segment),主存储区域是若干个512Byte的段。段又可以细分为块(Block),块大小是64Byte。FLASH写可以是位、字节、字,但擦除的最小单位是段[2]。

图3 MSP430G2231FLASH示意图


六、中断向量

6.1 中断向量

中断向量,存放中断服务程序首地址,地址范围0xFFC0~0xFFFF,共32个中断。值得注意的是,不同器件,中断向量含义不同,得参考数据手册,MSP430G2231的中断向量示意图如下:

6.2 向量表定义

在io430G2231.h文件定义了这些向量:

 

  1. /************************************************************

  2.  * Interrupt Vectors (offset from 0xFFE0)

  3.  ************************************************************/


  4. #define PORT1_VECTOR (2 * 2u) /* 0xFFE4 Port 1 */

  5. #define PORT2_VECTOR (3 * 2u) /* 0xFFE6 Port 2 */

  6. #define USI_VECTOR (4 * 2u) /* 0xFFE8 USI */

  7. #define ADC10_VECTOR (5 * 2u) /* 0xFFEA ADC10 */

  8. #define TIMERA1_VECTOR (8 * 2u) /* 0xFFF0 Timer A CC1, TA */

  9. #define TIMERA0_VECTOR (9 * 2u) /* 0xFFF2 Timer A CC0 */

  10. #define WDT_VECTOR (10 * 2u) /* 0xFFF4 Watchdog Timer */

  11. #define NMI_VECTOR (14 * 2u) /* 0xFFFC Non-maskable */

  12. #define RESET_VECTOR (15 * 2u) /* 0xFFFE Reset [Highest Priority] */

 

6.3 编写中断服务程序

 

  1. // 定时器中断服务程序

  2. #pragma vector=[中断矢量变量]

  3. __interrupt void ??????void)

  4. {

  5.   /***中断服务程序内容***/

  6. }

 

或者

 

  1. interrupt [中断向量] void 函数名()

  2. {


  3. }

 

    中断矢量变量表明了该中断服务函数对应的中断向量表中的中断地址。__interrupt关键字用于表明该函数是中断服务函数。

 

  1. // 定时器中断服务程序

  2. #pragma vector=TIMERA0_VECTOR

  3. __interrupt void TimerA_ISR(void)

  4. {

  5.   /***中断服务程序内容***/

  6. }

 

参考资料:

[1] 魏小龙.《南航MSP430选修课》试用教材.

[2] 文档《MSP430系列十六位超低功耗单片机教学实验系统实验教程》

[3] 手册《MSP430x2xx Family User's Guide.pdf》

[4] MSP430G2231数据手册

关键字:MSP-EXP430G2  LaunchPad  存储器组织 引用地址:MSP-EXP430G2 LaunchPad学习笔记:MSP430G2231存储器组织

上一篇:初学MSP-EXP430G2-LaunchPad(四)
下一篇:MSP430加密代码保护

推荐阅读最新更新时间:2024-11-10 10:28

MSP432P401R LaunchPad开箱入门
之前并没有怎么接触过TI的板卡,去年参加电赛并没有使用过TI的板卡,只知道用TI的板子可以加分,小车类的题目必须要用这些板卡。今年电赛又因为疫情推迟了,最近快要开学了,回到学校,手头刚好有申请来的MSP432P401R,想着还是拿来熟悉一下,以备不时之需,电赛用上了也稳赚不赔。 开箱 TI的板子包装和平时淘宝买的一些板子还是不太一样的,这个盒子还是挺方便的。 打开盒子,两张简易的说明书映入眼帘,左侧是板卡,右侧下方藏着数据线。把板卡拆出来看了看,和其他一些板卡相比,这个造型还是有一些奇怪的,上下两面的排针排母也方便了拓展。 Out-of-box Demo 盒子里的手册有这么一个Demo,看起来还有些意思,接下来就照着实
[单片机]
MSP432P401R <font color='red'>LaunchPad</font>开箱入门
一步步教你使用TI MSP430 LaunchPad
1、用USB线连接电脑PC和目标板LaunchPad。Windows会自动搜索驱动,当然,一般来说,都是安装失败的。 2、LaunchPad套件并没有提供光盘,驱动在哪里?IAR for MSP430已经集成了TI USB FET的驱动,所以,我们先把IAR for MSP430给安装上,驱动也就有了。这里驱动路径如下:D:ProgramsIAR SystemsEmbedded Workbench 6.0 Evaluation430driversTIUSBFET 至于软件安装时的注册/和谐问题,大家都是很有办法的,你懂的。 3、安装了IAR for MSP430之后,重新拔插USB,Windows 7会自动重新搜索驱动
[单片机]
一步步教你使用TI MSP430 <font color='red'>LaunchPad</font>
MSP430FR2433 LaunchPad板子energy trace技术测量电流电压
目的测试电压和电流 目的是用最便宜(优惠价4美元包邮)的MSP430FR2433上面自带的energy trace芯片,来测量其他板子上的功耗,因为万用表总是测不准的,而且也没办法积分来计算一块CR2032纽扣电池到底能用多久。 所需硬件 只要在J101那排跳线上,把其他板子的电源线接入到GND和3V3电源上,就可以了。 软件 一定要下载CCS6.2版本,guide文档上说要用CCS7版本,显然出现了不兼容的问题。 测试结果,可以看到电压非常精确3.2870V,电流消耗0.4313mA。
[单片机]
MSP430FR2433 <font color='red'>LaunchPad</font>板子energy trace技术测量电流电压
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved