0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

430怎么复位_430软复位方法详解

电子工程师 作者:工程师a 2018-05-20 10:04 次阅读

最近在搞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下编译、实践通过。

最后,查了一下,对于计算机系的这个方法可能是常识了,但是对于搞单片机嵌入式的大多还不知晓,个人就写出来,大家交流交流。已经知道这个方法的高手们,就一笑而过吧!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620828
  • 430
    430
    +关注

    关注

    0

    文章

    14

    浏览量

    16786
收藏 人收藏

    评论

    相关推荐

    msp430f149如何实现通给rst脚低电平来控制复位并且计数复位的次数?

    我用的是msp430f149这个芯片,想通给rst脚低电平来控制复位,并且计数复位的次数,这个是否能实现,如何实现,请高手指教
    发表于 04-15 02:15

    430复位芯片出现死机现象

    测试时430用的是149的片子,复位芯片用的是TPS3823,测试的目的是想看看这外部看门狗的准确性,程序很简单只有一个定时器和一个串口发送数据,但是单片机死机了。这个问题我怎么也想不通,就算是
    发表于 04-18 01:29

    STM32系统复位方法是什么

    STM32系统复位方法是什么
    发表于 11-26 06:11

    MSP430复位信号有哪几种呢

    MSP430复位信号有2种:文档:上电清除信号(PUC)、上电复位信号(POR)。个人理解:POR是第一次上电复位,PUC是在带电的情况下发生复位
    发表于 02-15 07:44

    MSP430复位信号有哪几种

    MSP430复位信号有2种:文档:上电清除信号(PUC)、上电复位信号(POR)。个人理解:POR是第一次上电复位,PUC是在带电的情况下发生复位
    发表于 02-15 06:58

    FS6500 MCU复位后有什么方法可以修复SBC复位

    我正在使用 SBC FS6500 芯片。目前,SBC 会在 MCU 复位后发生复位复位:表示 SBC 无法关闭电源,因为 SBC 为
    发表于 03-29 06:24

    msp430是如何实现复位功能的?

    msp430是咋样实现复位功能的?
    发表于 10-17 06:17

    MSP430_I2C硬件模块详解

    MSP430_I2C硬件模块详解,IIC总线,有的MSP430芯片是支持的。
    发表于 03-16 09:42 19次下载

    基于MSP430F2的系统复位

    系统的复位系统由POR和PUC信号驱动,各种不同的事件能触发产生这些复位信号,而根据不同的复位信号会产生不同的初始化状态。
    发表于 09-21 15:59 1次下载
    基于MSP<b class='flag-5'>430</b>F2的系统<b class='flag-5'>复位</b>

    MSP430F常用模块应用原理总结

    MSP430单片机系统复位电路从上MSP430系统复位电路功能模块图中可以看到了两个复位信号,一个是上电
    发表于 04-23 10:10 6次下载
    MSP<b class='flag-5'>430</b>F常用模块应用原理总结

    MSP430单片机复位电路可靠性设计详析

    为了解决混合信号控制器MSP430在实际应用中常遇到的因偶发复位失效而造成整个电路系统死机的问题,对MSP430系列单片机的复位机制进行了深入浅出的分析,提出了对MSP
    发表于 04-27 11:01 17次下载
    MSP<b class='flag-5'>430</b>单片机<b class='flag-5'>复位</b>电路可靠性设计详析

    MSP430教程之MSP430单片机复位电路的详细资料说明

    从上MSP430系统复位电路功能模块图中可以看到了两个复位信号,一个是上电复位信号POR(Power On Reset)和上电清除信号PUC(Power Up Clear)。
    发表于 03-21 18:24 11次下载
    MSP<b class='flag-5'>430</b>教程之MSP<b class='flag-5'>430</b>单片机<b class='flag-5'>复位</b>电路的详细资料说明

    MSP430单片机的复位系统有哪些常见问题应该如何解决

    Q1:请问msp430 怎么手动复位啊?是不是连到RST/NMI 上?但是这个脚不是和JTAG 连吗?我看到一些资料上说复位的话还要上拉电阻或者复位电路。
    发表于 09-04 17:27 0次下载
    MSP<b class='flag-5'>430</b>单片机的<b class='flag-5'>复位</b>系统有哪些常见问题应该如何解决

    【PUC、POR】MSP430复位信号

    MSP430复位信号有2种: 文档: 上电清除信号(PUC)、 上电复位信号(POR)。 个人理解: POR是第一次上电复位,PUC是在带电的情况下发生
    发表于 12-16 16:56 12次下载
    【PUC、POR】MSP<b class='flag-5'>430</b>的<b class='flag-5'>复位</b>信号

    【PUC、POR】MSP430复位信号_liangchaoxi的IT博客_新浪博客

    MSP430复位信号有2种: 文档: 上电清除信号(PUC)、 上电复位信号(POR)。 个人理解: POR是第一次上电复位,PUC是在带电的情况下发生
    发表于 12-16 16:57 10次下载
    【PUC、POR】MSP<b class='flag-5'>430</b>的<b class='flag-5'>复位</b>信号_liangchaoxi的IT博客_新浪博客