历史上的今天
返回首页

历史上的今天

今天是:2025年01月21日(星期二)

正在发生

2020年01月21日 | msp430程序升级方法

2020-01-21 来源:eefocus

最近在搞430的FLASH的自定义法(利用串口)程序烧写,烧写完成后断电复位,reset按键就可以运行新的程序。但是和学长交流了一下,这种方法不够好,希望有一种软复位的方式。于是百度了一下,都是些对看门狗进行写入特殊值使得430的cpu复位。反正个人是没有采用。


因为在搞程序的烧写下载,所以看了一下430的BSL。看到里面有一段话,关于从C代码中启动BSL的方法。如下:


3.7.1 从一个外部应用中启动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下编译、实践通过。


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

推荐阅读

史海拾趣

Daniels Manufacturing公司的发展小趣事

在当今社会,绿色环保和可持续发展已成为全球共识。作为一家具有社会责任感的企业,DMC积极践行绿色环保理念,致力于实现可持续发展。在生产过程中,DMC采用环保材料和清洁能源,减少废弃物和污染物的排放。同时,DMC还注重产品的环保性能设计,推出了一系列符合环保标准的产品。此外,DMC还积极参与社会公益活动,支持环保事业和社区建设。

ept Connectors公司的发展小趣事

EPT Connectors公司成立于1967年,由创始人Bernhard Guglhör在德国的某个小镇上创建。起初,公司专注于连接器的小规模制造,以满足当地电子设备的需求。随着技术的不断进步和市场的扩大,EPT逐渐意识到连接器在电子设备中的重要性,并决定专注于这一领域的发展。经过几年的努力,EPT在德国建立了自己的总部,并开始向国际市场拓展。

Equator Technologies公司的发展小趣事

面对日益激烈的市场竞争和技术变革,Equator始终保持着持续创新的精神。公司不断投入研发资源,探索新的技术方向和应用场景。例如,在人工智能和机器学习领域,Equator正在积极开展相关研究和实践工作,探索将这些先进技术应用于视频处理领域的可能性。通过持续创新和努力,Equator正致力于引领电子行业未来的发展方向。

Appointech Inc公司的发展小趣事

Appointech Inc公司深知品质是企业的生命线。因此,公司建立了严格的质量管理体系,从原材料采购到产品出厂的每一个环节都进行严格把控。同时,公司还注重品牌建设,通过不断提升产品质量和服务水平,树立了良好的企业形象和口碑。

Andon Electronics公司的发展小趣事

Appointech Inc公司,自创立之初就致力于提供创新的电子解决方案。在公司成立的早期阶段,团队凭借对电子技术的深刻理解和对市场需求的敏锐洞察,开发出了一系列具有竞争力的产品。这些产品不仅满足了客户的实际需求,也为公司赢得了初步的声誉和市场份额。

Armel Electronics Inc公司的发展小趣事

在电子行业中,技术更新迅速,创新是企业持续发展的动力。Armel Electronics Inc公司始终将研发创新作为公司的核心竞争力。公司不断投入资金,引进先进设备和技术,加强研发团队的建设。通过不断创新,Armel成功推出了一系列具有行业领先水平的新产品,为公司的持续发展提供了有力保障。

问答坊 | AI 解惑

武汉理工大学-2009大学生电子设计竞赛初赛题

本帖最后由 paulhyde 于 2014-9-15 09:44 编辑 这个应该是他们的竞赛初赛选拔题或者预测练习题吧~~~~各位可以作参考~~~ A_集成电路芯片测试仪 B_非接触供电系统 C_实用电子秤 D_程控音频OCL功率放大器 E_12V~220V逆变电源 F1_简单汉字自动书 ...…

查看全部问答>

求助 有关头文件目录问题 hack wince

在一篇hacking windows ce的文章里说道一些结构时,都会说出结构是在XX.h文件中定义 就像下面这种 // WINCE420\\PUBLIC\\COMMON\\OAK\\INC\\pehdr.h #define EXP 0 /* 0x8c Export table position */ #define IMP 1 /* 0x94 Import table posit ...…

查看全部问答>

关于模拟屏保

我现在做的程序需要在3分钟没有操作后,弹出一个广告展示窗口显示一些指定的图片.但是我没有想到好的办法去判断是否3分钟没有操作.因为程序中有很多的窗口,如果在每次的操作后都记录一个时间,那么这个工作量就很大.又没有更好的办法来判断是否3分钟 ...…

查看全部问答>

我想山寨M8,大家一起来出出主意!嘿嘿。

魅族M8是我比较佩服的产品,现在我做PDA也想学习一下它。 各位来参与一下,分数不会少的,嘿嘿。 我现在纳闷的问题就是PDA的供电问题,我选了电源芯片,都觉得不合适,M8做的还不错,我就看了一下他的一些拆机文档。 M8的主板结构和芯片大致和之 ...…

查看全部问答>

欢迎使用我的产品,谢谢!

1. c8051f 单片机(c2 ,jtag)和at89s5x单片机(isp)二合一串口编程下载线,速度极快,支持3伏(c8051f 单片机),5伏(at89s5x单片机)电源,设计新颖,可靠稳定,成本低廉!!!目前通过实际验证可编程下载的芯片:c8051f310、c8051f320、c8051f3 ...…

查看全部问答>

想从理论看起的以太网入门的朋友请进-入门资料指南

我想大家都认同在嵌入式的开发中,理论和实践是相辅相成的,对以太网的学习也不例外,掌握必要的理论基础知识是很有必要的,否则就如同云里雾里。有朋友问到需要看哪些资料,我就说说我个人的想法,供想从理论入门的朋友参考一下: 入门资料1:《 ...…

查看全部问答>

STM32能不能兼容工业标准的六线同步串行接口

                                  …

查看全部问答>

仪表放大器桥接电路误差预算分析

在典型应用中,有必要了解仪表放大器的误差源。虽然本指南只是用于说明,但对于解决增益非线性度、LF噪声等性能限制性误差问题具有重要意义。 …

查看全部问答>

这违规吗?

本帖最后由 paulhyde 于 2014-9-15 03:08 编辑 不同的组,用同一个pcb做出的板子违规吗?    …

查看全部问答>

【CLA调试点滴】MDEBUGSTOP的细节

C2000的CLA不支持断点调试,所以,只能在程序中加入MDEBUGSTOP来使CLA暂停。使用MDEBUGSTOP有几点应该注意: 1、在未连接CLA时,MDEBUGSTOP仅作为空操作指令使用,不影响程序的运行。 2、进入单步运行后,即是遇到MSTOP指令,(有时)CLA的中断 ...…

查看全部问答>