历史上的今天
返回首页

历史上的今天

今天是:2025年02月03日(星期一)

2021年02月03日 | MSP430FR5969 远程升级

2021-02-03 来源:eefocus

MSP430 远程升级功能:

基于

1、片外EEPROM(片内flash够大也可使用片内)

2、射频通信

3、上位机软件(传输升级文件)


总结点:

1、程序运行总是从复位中断向量开始寻址入口执行,中断向量就是保存每个中断触发满足后的中断函数的入口地址的存储单元。


根据数据手册上诉说The interrupt vectors are located in the address range 0FFFFh to 0FF80h, for a maximum of 64 interrupt
sources ,默认中断向量位置为0XFF80~0XFFFF,长度为0x80.

MSP430FR5969的头文件中定义复位向量为 #define RESET_VECTOR        (55 * 2u) /* 0xFFFE Reset [Highest Priority] */

默认值0XFFFE~0XFFFF这两个字节是复位中断向量,存储是主函数在FLASH的运行起始地址。如主函数保存在

P(CODE)CODE=4400-4A00

则0XFFFE内保存的是0X00,0XFFFF内保存的是0X44;则系统复位后,就到0XFFFE,0XFFFF中去寻找主函数的入口地址。

其他中断函数的运行地址也保存在相应的向量中,当触发中断的条件满足后,程序根据中断向量内所指的地址去寻址中断函数的入口地址。

工程建立产生一个link文件(.xcl文件),文件中定义了内存划分,CODE代码段存储位置,中断向量表默认值从0XFF80~0XFFFF表述为

-Z(CONST)SIGNATURE=FF80-FF8F
-Z(CONST)JTAGSIGNATURE=FF80-FF83
-Z(CONST)BSLSIGNATURE=FF84-FF87
-Z(CONST)IPESIGNATURE=FF88-FF8F
-Z(CODE)INTVEC=FF90-FFFF
-Z(CODE)RESET=FFFE-FFFF

2、要进行远程文件升级,则需要将代码划分为两段代码:BOOT、应用程序APP两段代码,若有升级文件,在应用程序中接收文件存储入片外epprom,再使用BOOT将文件搬移到应用程序区。

3、前面谈到程序运行总是从中断向量表中启动,那么内存中有两段代码(BOOT、应用程序APP),他们的中断向量指向的位置就不能一致,即需要修改link文件。

我们使BOOT代码的启动位置为默认值,修改应用程序的启动区和代码区存储位置

BOOT的link文件

-P(CODE)CODE=4400-4A00
-Z(CODE)CODE_PAD
// ---------------------------
// Constant data
//
-Z(CONST)DATA20_C,DATA20_ID,CODE_ID=4400-4A00,
// -------------------------------------
// Signature memory and interrupt vectors
//
-Z(CONST)SIGNATURE=FF80-FF8F
-Z(CONST)JTAGSIGNATURE=FF80-FF83
-Z(CONST)BSLSIGNATURE=FF84-FF87
-Z(CONST)IPESIGNATURE=FF88-FF8F
-Z(CODE)INTVEC=FF90-FFFF
-Z(CODE)RESET=FFFE-FFFF

应用程序的link文件

-P(CODE)CODE=5000-FE7F,10000-13FFF
-Z(CODE)CODE_PAD
// ---------------------------
// Constant data
//
-Z(CONST)DATA20_C,DATA20_ID,CODE_ID=5000-FE7F,10040-13FFF
// -------------------------------------
// Signature memory and interrupt vectors
//
-Z(CONST)SIGNATURE=FE80-FE8F
-Z(CONST)JTAGSIGNATURE=FE80-FE83
-Z(CONST)BSLSIGNATURE=FE84-FE87
-Z(CONST)IPESIGNATURE=FE88-FE8F
-Z(CODE)INTVEC=FE90-FEFF
-Z(CODE)RESET=FEFE-FEFF

表述为BOOT应用程序代码存储位置从0X4400开始,中断向量默认

应用程序代码存储位置从0X5000开始,中断向量修改为从0XFE80~0XFEFF


4、BOOT程序设计和应用程序设计

应用程序设计:(上位机软件->射频升级文件传输->设备接收)设备接收存储入片外EEPROM,将中断向量修改为BOOT的向量表

memcpy((ST_UINT16 *)0xFF80, (ST_UINT16 *)0xFF00, 0x80);/* 中断向量改成boot的起始地址。FF00为boot的向量备份 */

重启代码,程序从BOOT开始运行;

BOOT程序设计:检测片外EEPROM是否有升级文件,若有则将数据拷贝到片内存储(),擦除片外EEPROM

memcpy((ST_UINT16 *)0xFF00, (ST_UINT16 *)0xFF80, 0x80);
/* 还原中断相量 */
memcpy((ST_UINT16 *)0xFF80, (ST_UINT16 *)0xFE80, 0x80);

将BOOT的中断向量备份到0XFF00,将应用程序的中断向量0XFE80拷贝到FF80,重启程序BOOT程序(0xFF80),程序即从应用程序指定的位置(0xFE80)开始执行应用程序。


5、将boot和应用程序同时烧进单片机

boot程序生成TXT文件,应用程序生成TXT文件,使用工具将两个文件拼接生成.bin与.txt文件,使用FET-Pro430烧写进430单片机

首次程序运行为从默认0XFF80开始运行,开始执行BOOT程序,检测到EEPROM无升级文件,备份BOOT中断向量到0XFF00,将中断向量改为应用程序中断向量0XFE80,重启BOOT程序,则程序指向应用程序中断向量,开始运行应用程序;

收到升级文件.bin,存储数据,将BOOT的备份向量0XFF00拷贝到0XFE80,重启应用程序,则程序指向BOOT中断向量,开始执行BOOT程序。


推荐阅读

史海拾趣

Eagle Plastic Devices公司的发展小趣事

随着技术创新的不断推进,Eagle Plastic Devices公司开始积极拓展国内外市场。公司通过参加国际电子展会、与知名电子制造商建立战略合作关系等方式,不断提高品牌知名度和市场份额。同时,公司还注重产品质量的提升和售后服务的完善,赢得了客户的信任和好评。在短短几年内,Eagle Plastic Devices公司便成为了电子行业内知名的塑料电子部件供应商。

Digital Equipment Corp公司的发展小趣事

1998年,DEC被康柏公司以96亿美元的价格收购。这次收购标志着DEC成为康柏公司的一部分,开始了新的发展历程。在收购后,DEC的品牌和产品得到了保留和发展,同时康柏公司也为DEC带来了更多的资源和支持。通过业务整合和资源共享,DEC在康柏公司的领导下继续保持着其在计算机行业的领先地位。

泰科天润(GPT)公司的发展小趣事

2001年,惠普公司与康柏公司宣布合并,DEC作为康柏的一部分也随之并入惠普。这次合并进一步扩大了DEC的业务范围和市场影响力。在合并后,DEC的计算机产品和技术被整合到惠普的产品线中,同时DEC的品牌也逐渐淡出市场。然而,DEC在计算机行业中的贡献和影响力仍然被广泛认可,其技术遗产和创新精神在惠普及其他科技公司中得到了传承和发展。

GSME Electronics公司的发展小趣事

在半导体行业,技术创新是企业持续发展的关键。GSME Electronics深知这一点,不断加大研发投入,提升公司的研发实力。公司拥有一支朝气蓬勃的高素质员工团队,他们致力于新产品的开发和旧产品的升级换代。通过不断的技术创新和研发努力,GSME Electronics在半导体器件领域取得了多项技术突破,为公司的发展注入了新的动力。

G-Two Inc公司的发展小趣事

背景:在光伏胶膜领域取得成功后,福斯特开始寻求多元化发展。

发展:公司依托在光伏材料领域的技术积累和市场优势,逐步向电子电路、锂电等新材料领域拓展。同时,公司还成立了新材料研究院,专注于新材料的研发和创新。

成果:目前,福斯特在电子电路、锂电等领域也取得了显著成绩,为公司带来了新的增长点。

Eurosil Electronics Ltd公司的发展小趣事

Eurosil Electronics Ltd公司成立于XXXX年,由一群热衷于电子科技研发的工程师创立。在成立初期,公司专注于半导体材料的研究与开发,致力于提高半导体的性能与稳定性。经过数年的努力,Eurosil成功研发出一种新型半导体材料,具有更低的能耗和更高的可靠性,这一技术突破为公司赢得了业界的广泛认可,也奠定了其在电子材料领域的重要地位。

问答坊 | AI 解惑

安防视频监控攻守兼备 五大趋势供需利好

安防视频监控行业具备长期向好的大逻辑。首先,安全需求随着经济发展和生活水平提高而快速增长,中国社会经济加速转型也使得安全问题突出,以视频监控为主导的技术防范手段获得良好发展机遇;其次,视频监控减少对人防的依赖,符合经济发展和产业升 ...…

查看全部问答>

LM3S1138对GPIO口的操作

  刚开始使用LM3S1138,在开发例程里面看到对GPIO口引脚操作的函数,问题:有没有直接读写8bit端口的方法,就像以前的51单片机那样,P0=0xff,等等。谢谢!    …

查看全部问答>

大哥!wince 怎么做窗体嵌套啊,没有mdi

pc 程序中很容易做父子窗体 ,可是wince 中怎么实现啊,实在找不到.设置parent也不可以,说是不是预计的数据. …

查看全部问答>

图片渐进渐出效果

RT,要实现图片渐进渐出效果, 我是通过改变图片透明度来做的,但是这样速度太慢了,不行啊; 有什么好的算法或者资料吗? 谢谢! …

查看全部问答>

插上USB线,系统就很慢

插上USB线,系统就很慢 而且开发板上显示“已经连接” 但PC机上却是一直显示“正在连接” Why? …

查看全部问答>

Linux精品教程

朋友们来下载吧,绝对精品,包含全部内容!…

查看全部问答>

菜虫请教:stm32的定时器与外部中断的问题

请问stm32定时器输入捕获模式下的中断与外部中断有什么区别?都是捕捉到信号的边沿之后执行中断程序啊…

查看全部问答>

无线传感器网络和传统的传感器网络的优势劣势

小弟新人,想知道这方面的知识,希望哪位大侠给出个一二三来,让小弟好好比较比较,正在左右徘徊呀。…

查看全部问答>

FPGA 对两个同频率信号 计数 ,计数值不相等

大家好,请教各位朋友FPGA的计数器问题: FPGA(EP4CE6)设计了个双路的 计数器,对输入的两路方波信号连续计数,并每隔1us将两路计数值相减,结果送到DA输出, 如果两路输入信号是同频率的方波信号,那么DA输出的波形应该是一条直线,这在models ...…

查看全部问答>