历史上的今天
返回首页

历史上的今天

今天是:2025年04月20日(星期日)

正在发生

2021年04月20日 | MSP430两种串口升级方式对比

2021-04-20 来源:eefocus

言归正传。我做过两种方式的串口升级固件程序。我把他们分别成为loader方式和IAP方式。


所谓的loader方式就是最初只需烧写loader程序即可,loader程序负责通过串口接收应用程序代码,完整接收并校验无误之后,跳转到应用程序区执行应用程序。再复杂一点的可以在应用程序中设置特定触发方式使其跳回loader程序区(系统复位),此时便可以接收另一套应用程序代码实现多次升级,当然了更复杂的甚至可以将除去loader程序区之外的flash区域划分多个区分别保存当前应用程序和新版应用程序,即使在新版应用程序升级失败的情况下还可以还原旧版应用程序,实现系统备份还原;


所谓的IAP其含义就是在应用升级,具体来讲就是在应用程序中接收程序代码(暂存在非当前执行区,此时需要程序员合理规划flash的分区),接收并校验无误之后跳转到引导程序(暂时也叫做引导程序),该引导程序根据flash的写入情况决定是将新版程序拷贝到应用程序执行区(这个执行区最好固定地址空间)还是还原原来的旧版应用程序(此时整个flash分以下几个区:引导程序区、旧版应用程序区(做系统还原之用)、新版应用程序区(新接收的程序代码暂存区(不同于应用程序执行区))、应用程序执行区(也即IAP中的A(Application))在这四个分区中,除引导程序区之外的其他三个分区其大小最好一致)。


IAP设计时引导程序只负责条件判断flash代码的区域拷贝、中断向量重映射等一些基本工作,相比于loader方式引导程序无需编写串口通信程序(loader方式时串口通信接收程序最好设计成轮询方式)而且引导程序相对更加固定,但是采用此种方式时首次烧写程序需要先烧写引导程序,再烧写应用程序(仿真器烧写应用程序时不能把引导程序区擦除掉),而且每次升级的应用程序起码应该保证串口通信部分程序无bug,否则可能影响下次升级!


最后,有一个设想还未实现,如果引导程序要进行扩展(并非完全因为bug)我们可以在应用程序中接收引导程序代码覆盖旧版引导程序(或者像备份应用程序一样将其做个备份),就像两个木板过河,我们踩在其中一块木板上拿着另一块木板前移,之后跳转到前面的木板再把后面的木板前移如此一来便可以实现过河。


在此也是这样的,当程序在引导程序区执行时我们可以修改应用程序区,同样的当程序运行到应用程序区时我们也可以修改引导程序区!


如此一来程序可以设计的相当灵活,方便不合适拆卸的设备的固件维护,但是过于灵活的程序设计也可能带来更隐蔽的bug。具体设计到什么程度我想应该视应用场景而定吧!


推荐阅读

史海拾趣

芯力微(CHI Power)公司的发展小趣事

面对日益激烈的市场竞争,芯力微不断推动创新,以应对市场的变化。在电源管理领域,公司不断研发新技术、新产品,以满足客户日益增长的需求。同时,芯力微还积极拓展新的应用领域,如物联网、汽车电子等,为公司的发展开辟了新的道路。这种持续的创新精神使得芯力微在电子行业中始终保持领先地位。

Carlo Gavazzi公司的发展小趣事

随着技术的不断进步和市场需求的不断变化,Carlo Gavazzi公司始终保持着创新的活力。公司不断推出新产品,从最初的电气元件到后来的控制和自动化解决方案,再到能源管理和节能方案,产品线日益丰富。这种多元化的产品策略不仅满足了客户的多样化需求,也为公司带来了更广阔的市场空间。

聚洵(Gainsil)公司的发展小趣事

为了进一步拓展市场,Carlo Gavazzi公司开始实施国际化战略。公司先后在多个国家和地区设立销售和服务团队,将产品和服务推向全球市场。这一过程中,公司不仅面临着文化差异和市场环境的挑战,也积极寻求与当地企业的合作与共赢。通过不断努力,公司逐渐在全球范围内建立起自己的品牌形象和市场地位。

Connor-Winfield公司的发展小趣事

在近年来,随着人们对环境保护意识的提高,电子行业也开始注重绿色环保和可持续发展。Connor-Winfield积极响应这一趋势,将绿色环保理念融入到产品设计和生产过程中。公司采用环保材料和节能技术,努力降低产品对环境的影响。同时,公司还积极参与各种环保活动,推动电子行业的绿色发展。

以上是关于Connor-Winfield在电子行业中的5个发展故事。这些故事虽然可能并不完全准确反映公司的实际发展历程,但从中我们可以看出,Connor-Winfield在发展过程中始终注重技术创新、品质提升、市场拓展和环保可持续发展等方面的工作,这些努力使得公司在激烈的市场竞争中保持了领先地位。

GETEDZ ( HVGT)公司的发展小趣事
根据电路的需要选择合适的接触器、继电器等电器元件,确保元件的性能和质量满足要求。
Acmelux Taiwan Inc公司的发展小趣事

在电子产品市场竞争激烈的今天,品质成为企业生存和发展的关键。Acmelux Taiwan Inc公司始终坚持品质至上的原则,从原材料采购、生产制造到产品测试,每一个环节都严格把关,确保产品的稳定性和可靠性。正是这种对品质的执着追求,使得Acmelux的产品在市场上赢得了良好的口碑,成为众多客户的首选品牌。

问答坊 | AI 解惑

调节阀

在化工生产中,调节阀是直接接触工艺介质的控制机构,本文以工程实际为背景,讨论了调节阀选型的原则,并介绍了在聚甲醛装置中应用调节阀的情况。 工艺简介 云南云天化股份有限公司的聚甲醛装置系国内第一套同类型装置,工艺包从波兰ZAT引进, ...…

查看全部问答>

RockBox on mini2440

My Mini2440 board just arrived. I did copy the file rockbox.mini2440 (the Rockbox firmware which I did build before) to .rockbox folder on SD Card. After inserted the SD Card and turned power on, and waited a few seconds, I had ...…

查看全部问答>

红外线遥控如何该无线遥控

请教大家一个小问题,我有一个红外线遥控MP3 音箱,红外线遥控遇到什么障碍就不听使唤、遥控距离有限,就想把遥控改成无线的,可对无线不怎么董,想请大家帮帮忙。 我在网上找到带PT2272-M4编码器的遥控收发套件,这个能改吗? …

查看全部问答>

FPGA应该从哪起步?希望各位大侠不吝赐教,谢谢

                刚刚开始学习电子设计,明年将参加电子设计大赛,想学一下FPGA,不知从何起步,希望能得到各位大侠的指教,不胜感激!…

查看全部问答>

wince 下用evc来写串口通信。

哪位大虾能发给我个串口通信的实例呀??最好用EVC写的。。感激涕零。\\ 我的邮箱6094189ye@163.com 我看到书上有CSerial 这个类,但STANDARDSDK下面没有这个类呀。。。???…

查看全部问答>

关于楚狂人的驱动开发教程问题,请高手指教

小弟正在学习楚狂人写的window文件系统过滤开发教程,在学习第三章分发例程,fast io 时碰到以下问题: _inline wd_void wd_fio_disp_set_query_standard( wd_drv *driver, wd_fio_query_standard_func func) {     driver->Fa ...…

查看全部问答>

LED实现白光的方法

目前,LED实现白光的方法主要有三种: 1、通过LED红绿蓝的三基色多芯片组和发光合成白光。   优点:效率高、色温可控、显色性较好。   缺点:三基色光衰不同导致色温不稳定、控制电路较复杂、成本较高。 2、蓝光LED芯片激发**荧光粉,由LED ...…

查看全部问答>

hshg,在》

用MSP430F1121东西呢,有些JATG口和端口复用怎么解决的啊 可以随便用吗,讲讲这方面的经验啊,谢谢 其实MSP430F13X和MSP430F14X也不贵也,有没用这写系列的 我现在正为选哪一款郁闷呢,用MSP430F1232画了原理图,用以前的WORKBENCH,发觉没有此系 ...…

查看全部问答>

我的电子秤

这次参加ADI的DIY可谓是一波三折。等到预定结束的日期相近才那得芯片。好在延长了时间。不过在延长的时间里我也开始忙了,因此至今没有完全完成设想的功能,只做完了基本功能。   我的设计采样AD7190,目的是实现比较高的精度,因此选用了2Kg ...…

查看全部问答>

RF24L01

一个RF24L01  发送和接收的程序。有需要的可以看看。…

查看全部问答>