stm8 IAP 支持双中断

本文详细介绍了在嵌入式系统中,如何通过IAP(In-Application Programming)和APP程序的设置与烧写流程,实现设备的在线编程与更新。包括中断向量表的备份与修改、程序起始地址设定、bin文件合并及转换为hex文件的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先大概记录大概步骤吧,免得忘了。

IAP程序

程序起始地址0x8000

1. 将0x8000-0x8080中断向量表备份到 0xFF70处

2. 将中断向量表拷贝到内存指定区域,注意内存的前16字节是虚拟寄存器,不能用。

3. 将IAP的中断修改为指向内存区域中的中断向量表。(需要中断向量表格式就会改了,前四字节不要动)

以上中断向量表完成,IAP程序可以正常运行。

APP程序

程序起始地址自定,我的是0xA000——通过修改IAR配置文件完成。

1. 将0xA000 开始的128字节的中断向量表拷贝到内存指定区域。

2. 程序可以正常运行。

加上跳转代码,以上IAP和APP可以正常运行。

程序烧写

 现在生成一个IAR.bin 和app.bin 一般都是用hex文件。

1. 合并2个bin文件,注意app的偏移,比如我的app地址0xA000,偏移是0xA000 - 0x8000 = 0x2000

2. 将合并的bin文件转换为hex文件。偏移是0x8000

下面给一个合并bin文件和转换成hex文件的链接,网上挺多的。找也好找。

bin合并和转hex文件

https://download.youkuaiyun.com/download/u012587637/11259160

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值