注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
wstt的个人空间 https://home.eeworld.com.cn/space-uid-241610.html [收藏] [复制] [分享] [RSS]
日志

MSP430的启动过程

已有 8067 次阅读2011-3-4 14:23 |个人分类:MSP430

   介绍启动过程之前我们先介绍下MSP430的POR(power on reset)和PUC(power up clear)。
POR只能由下面三种情况触发:1、器件上电;2、RST(配置为复位模式)引脚为低电平;3、当PORON为1时, SVS为低。PUC的触发情况(POR一定会触发PUC):1、发生POR;2、看门口在溢出;3、看门狗写密码错误;4、FLASh写密码错误;5、从0-01ffH取指令。
一旦MCU重启,比如掉电重启或者按了复位按键,那么就会发生POR。这个时候PC就会从中断向量表的复位向量处取地址,即MSP430中地址为0xfffe处的地址值。如图一所示中断向量表对应的地址值为0x803E,程序运行会跳转到0x803E处,如图二所示。可以看到这是IDE(IAR)给我们做的的启动代码,可以看到基本上是对memory的操作,包括堆栈的初始化,内存的初始化等,“00805E    12B0 827E          call    #main”
这句就和容易理解了就是跳转到你的代码开始,即开始执行用户的代码了。
?cstart_begin:
__program_start:
 00803E    4031 2100          mov.w   #0x2100,SP
?cstart_init_zero:
 008042    403C 113E          mov.w   #0x113E,R12
 008046    403D 006F          mov.w   #0x6F,R13
 00804A    12B0 86A6          call    #__data16_memzero
?cstart_init_copy:
 00804E    403C 1100          mov.w   #0x1100,R12
 008052    403D 8000          mov.w   #0x8000,R13
 008056    403E 003D          mov.w   #0x3D,R14
 00805A    12B0 86C0          call    #__data16_memcpy
?cstart_call_main:
 00805E    12B0 827E          call    #main
 008062    12B0 86B8          call    #exit



图二 0x803e处的代码

图一 中断向量表

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章