最近在搞430的FLASH的自定义法(利用串口)程序烧写,烧写完成后断电复位,reset按键就可以运行新的程序。但是和学长交流了一下,这种方法不够好,希望有一种软复位的方式。于是百度了一下,都是些对看门狗进行写入特殊值使得430的cpu复位。反正个人是没有采用。
因为在搞程序的烧写下载,所以看了一下430的BSL。看到里面有一段话,关于从C代码中启动BSL的方法。如下:
从一个外部应用中启动BSL
将程序计数器设定到内存为位置0x1000 来启动BSL。堆栈一直被复位,而RAM 被清空。应该注意的是,GIE 位未被禁用,所以如果不需要中断的话,这一步应该通过调用应用来完成,并且如果它们被使用的话,这一步应该从“返回BSL”返回。
由于堆栈被复位,位置0x1000 也可以被作为一个C 功能进行调用,示例代码如下:
((void (*)())0x1000)()
于是想到,既然可以从C里面跳转到0x1000,那么也可以跳转到其他地址,比如复位地址了。
以6638为例。430的复位中断矢量地址是0xFFFE,里面存储了将要跳转的物理地址。6638的代码区起始地址是0x8000,正常复位是先进入复位中断,然后PC指针导入地址0x8000,然后从0x8000开始执行代码。那么软复位则是,执行((void (*)())0x8000)(),直接PC指针被导入0x8000的地址,而这个地址正好是6638的代码区起始地址,于是软复位了。个人分析一下这个指令,如有错误敬请大神们指正。
从代码上讲,(void (*)()是一个指向空函数的指针,((void (*)())0x8000)()是将0x8000强制转换为函数指针后进行函数调用,于是0x8000便被送入了PC指针。
对于其他的430单片,去查其数据手册FLASH段,弄清其代码区的开始地址,也可以用这个方法软复位了。
实测,IAR,CCS下编译、实践通过。
最后,查了一下,对于计算机系的这个方法可能是常识了,但是对于搞单片机、嵌入式的大多还不知晓,个人就写出来,大家交流交流。已经知道这个方法的高手们,就一笑而过吧!
关键字:msp430 程序升级
引用地址:
msp430程序升级方法
推荐阅读最新更新时间:2024-03-16 16:01
msp430软件安装破解过程
ew430-ev-320a 安装破解过程 第一步: 把安装文件放到一个目录下(不要用中文、目录尽量短) 第二步: 开始 运行 cmd 第三步: 进入安装文件目录下 第四步: 查找机器代码: iarid.exe 第五步: 生成密钥 iarkg.exe machine code /0x26386 code.txt 第六步: 进入到 code 记事本中 查找 关于 msp430的 key Ctrl + F -- 430 第七步: 开始安装 操作如下: Microsoft Windows XP (C) 版权所有 1985-2001 Microsoft Corp. C:
[单片机]
基于MSP430和Zigbee的无线抄表终端电路设计
电路原理:核心处理器采用TI公司的MSP430F149单片机。为实现低功耗的要求,电路中采用高速和低速两个晶振,由高速晶振产生频率较高的MCL-K,以满足 CPU高速数据运算的要求,在不需要CPU工作时关闭高速晶振,由低速晶振产生频率较低的ACLK,运行实时时钟。日历时钟芯片采用PHILIPS公司的 PCF8563。此芯片支持IIC总线接口,采用低功耗CMOS技术,具有较宽的工作电压范围1.0V~5.5V,在3.0V供电条件下,工作电流和休眠电流的典型值都为0.25μA,能记录世纪、年、月、日、周、时、分、秒,具有定时、报警和频率输出功能。存储器采用复旦微电子的FM24C04。此芯片是两线制串行EEPROM,兼容IIC总线接口,采
[单片机]
初识畅学系列MSP430F149单片机开发板
1、畅学MSP430单片机核心板 畅学系列六合一MSP430单片机核心板板载贴片封装的MSP430F149单片机芯片,芯片IO全部引出2组,既可以直接插到畅学系列多功能开发学习板/实验箱底板直接扩展为多功能开发学习板,也可以单独作为一个MSP430最小系统核心板使用。 畅学系列六合一MSP430单片机核心板-标配一个MSP 430149单片机,核心板集成BSL下载器,一条USB线即可实现供电和BSL方式程序下载,还可以通过USB线实现串口通讯。。 板载BSL下载模块,可以方便的直接通过USB线在供电同时还可以下载程序。 板载BSL下载模块,还可以作为串口通讯模块使用,可以通过USB供电同时和PC机进行串口通
[单片机]
MSP430F449的时钟问题
当发生上电复位(POR)或者上电清除(PUC)信号时,系统各寄存器会发生复位。 注意:系统时钟相关的几个寄存器在复位后,其初始值不是0. SCFQCTL 寄存器 bit 7 bit6~0 SCFQ_M N 复位后,初始值为:0x001F bit7:0:使能 DCO(频率调整器)1:禁止 DCO N是倍频,系数,决定DCO的最终频率输出。F=D(N+1)*fcrystal.由N初值为1F可以知道。N=31 其中D是由FLL_CTL0的最高位DCOPLUS决定,其为0时不分频即D=1。DCOPLUS为1时DCO信号经锁频环反馈环节分频,即有由SCFI0的FLLDX位决定D的值。初始值为0。 其中fcrystal值位
[单片机]
采用MSP430单片机的开关稳压电源设计方案
MSP430系列单片机是美国TI公司生产的新一代16位单片机,是一种超低功耗的混合信号处理器(MixedSignal Processor),它具有低电压、超低功耗、强大的处理能力、系统工作稳定、丰富的片内外设、方便开发等优点,具有很高的性价比,在工程控制等领域有着极其广泛的应用范围。开关Boost稳压电源利用开关器件控制、无源磁性元件及电容元件的能量存储特性,从输入电压源获取分离的能量,暂时把能量以磁场的形式存储在电感器中,或以电场的形式存储在电容器中,然后将能量转换到负载。对DC-DC主回路采用Boost升压斩波电路。 系统结构和总设计方案 本开关稳压电源是以MSP430F449为主控制器件,它是 TI 公司生产的
[单片机]
MSP430F2274 端口操作
/******************************************************************************************************************************************* * 功能 : P1.0用来控制LED的亮灭,软件延时50000,来翻转P1.0 * * * *
[单片机]
GPS9808模块在汽车防盗系统中的应用
1 GPS9808的功能与特点 GPS9808是一款功能强大、性能卓越的OEM模块。它在保持以前oEM模块优点的基础上进行了改良,是结构小巧、性能优良的低功耗12通道模块。它的热启动时间小于8 s,重捕时间小于0.1 s;定位精度在差分模式(DGPS)下小于5 m;接口采用串行TTL电平,数据格式支持标准NMEA—0183、SiRF二进制协议。模块外部的射频金属保护保证了在嘈杂环境下同样具有最佳性能,外型尺寸为24mm×20mm×2.6mm,功耗仅为215mW,非常适合在汽车电子等对功耗体积要求较高的系统中应用。GPS9808引脚分布如图1,各引脚的功能表1所列。 2 GPS9808在汽车防盗系统中的硬件设计 该
[单片机]
基于MSP430行驶车辆检测器的设计
利用环形线圈、MSP430F1121A单片机与输出接口,组成低功耗行驶车辆检测系统,并能根据用户预先设定的灵敏度、工作方式、输出方式进行车辆检测与信号输出。 还应用软件动态刷新基准的方法提高了检测的可靠性和准确性。实验表明:该系统具有结构简单、功耗低、调节方便等优点。 引言 近年来,车辆检测器作为交通信息采集的重要前端部分,越来越受到业内人士的关注。鉴于公路交通现代化管理和城市交通现代化管理的发展需要, 对于行驶车辆的动态检测技术——车辆检测器的研制在国内外均已引起较大重视。车辆检测器以机动车辆为检测目标,检测车辆的通过或存在状况,其作用是为智能交通控制系统提供足够的信息以便进行最优的控制。 目前,常用的行驶车辆检测器主要有磁感应
[汽车电子]