STM32 EC20 OTA 程序设计 Bin文件错误与改进

STM32 OTA 程序设计 V0.1

  1. 流程图
    现实很残酷

  2. Flash 区域划分视图
    BOOT起始地址 0x0800 0000 50k
    APP 1区地址 0x0800 c800 100k
    APP 2区地址 0x0802 5800 100k
    Boot参数区地址 0x0803 e800 1k

  3. BootLoader区代码设计
    程序空间大小为20k,地址分配为0x0800 0000到0x0800 5000.主要实现功能
    1,读写flash
    2,实现程序跳转,重定义中断向量表
    3,标记A,B代码区域,根据标志位确定执行代码区

  4. App区代码设计
    A,B代码区大小都为100K
    1,解析升级命令,触发升级程序
    2,运行4G模块FTP程序,下载文件到4G模块RAM区
    3,运行4G模块FILE程序,对RAM区的升级文件拷贝到STM32flash中

STM32 OTA 程序设计 V0.2

1 修改原设计说明
原设计中设置了两个代码运行区域,本意是想从BootLoader中分别跳转到A,B区域,但是该方案在设计时,没有考虑到bin文件中存在绝对地址问题,即在0x0800ce00处生成的bin文件,只能在该地址上运行,即便是拷贝到0x08025800处,也运行不了B区代码。打开bin文件,

在这里插入图片描述
前16字节数据:2000ad60 0800c9dd 0801197b 08010781
可以看到复位中断地址还是属于A区代码中,boot跳转到0x08025800,读取到复位中断地址后,便跳回A区代码执行,B区代码不会被运行。想解决这个问题,只有在生成bin文件时,修改ROM地址
在这里插入图片描述在这里插入图片描述
打开bin文件,发现复位中断地址为080259dd.

这时候,B区代码才可以被正常运行。
显然在对设备OTA升级时,既要考虑到当前设备运行在哪个区域,同时去生成另一个区域的bin文件,极容易出现操作错误的问题,一旦错误,该设备将无法远程维护。基于上述分析,故修改升级方案。

2 流程图

在这里插入图片描述
3 Flash 区域划分视图
BOOT起始地址 0x0800 0000 50k
APP运行区地址 0x0800 c800 100k
APP 备份区地址 0x0802 5800 100k
Boot参数区地址 0x0803 e800 1k
4 BootLoader区代码设计
程序空间大小为20k,地址分配为0x0800 0000到0x0800 5000.主要实现功能
1,读擦升级标志位
2,拷贝备份区程序到运行区
3,实现程序的跳转
5 App区代码设计
APP运行区和备份区大小都为100K
1,解析升级命令,核对软件版本号,触发升级程序
2,运行4G模块FTP程序,下载文件到4G模块RAM区
3,运行4G模块FILE程序,对RAM区的升级文件拷贝到STM32flash中
4,使用MD5对文件进行校验,确定是否更新程序。

### 回答1: STM32 IAP (In-Application Programming)是指在应用程序运行期间对STM32微控制器进行固件升级的一种方式。它通过编程接口,使得用户可以通过串口或网络等方式将新的固件程序烧录到设备中,而无需通过外部编程器。 STM32的远程升级(OTA)是利用无线通信技术实现的一种远程升级方式。通过EC20开发套件提供的无线通信能力,可以将新的固件程序通过网络发送到STM32设备,并进行自动更新。这种OTA方式可以方便快捷地更新设备的固件,无需物理接触设备。 EC20开发套件是一套基于EC20模块的开发工具。EC20模块是一款集成了2G/3G/4G通信功能的模块,支持数据传输、短信、语音通信等多种功能。通过EC20开发套件,可以方便地开发和测试与EC20模块相关的应用程序。 Boot和App是指STM32设备中的引导程序和应用程序。引导程序负责在设备上电时加载和启动应用程序,而应用程序则是设备具体的功能或应用逻辑。Boot和App源码是指这些程序的源代码,可以在开发过程中进行定制和修改,以满足特定的需求。 关于以上内容的详细资料可以在ST官方网站或相关论坛上找到。ST官方网站提供了丰富的文档、示例代码和应用笔记,可以作为开发参考。在相关论坛上,还可以找到其他开发者的经验分享和问题解答,对于理解和应用这些技术也是很有帮助的。 ### 回答2: STM32是一款高性能的32位微控制器系列,具有广泛的应用领域。其中的IAP功能使得STM32可以通过固件升级来更新应用程序。远程升级(OTA)技术则进一步提供了通过网络进行远程固件升级的能力。 EC20是一款高速的4G LTE通信模块,具有广泛的通信能力。EC20开发套件提供了一套开发工具和示例代码,帮助开发人员快速实现与EC20通信的功能。 Boot和App源码是指STM32的引导程序和应用程序的源代码。引导程序是在系统启动时加载的程序,负责初始化硬件和加载应用程序。应用程序则是用户编写的程序,实现了具体的功能。 关于这些资料,可以从ST官网和其他技术资源网站上获得。ST官网提供了完整的STM32系列产品说明、技术手册和应用笔记,其中包含有关IAP和OTA的详细信息。此外,还可以在社区论坛和在线教程中找到很多有关STM32开发和EC20通信的实例和解决方案。 总之,在进行STM32远程升级和EC20开发时,可以利用官方提供的资料和开发套件源码来实现相关功能。与此同时,参考论坛和技术资源网站上的案例和教程,可以获得更多的帮助和指导。 ### 回答3: STM32是意法半导体推出的一系列32位微控制器产品系列,拥有丰富的外设功能和高性能的处理能力。IAP(In-Application Programming)是指通过应用程序对微控制器进行编程和升级的技术。即可以在设备内部通过编程方式更新应用程序,不需要将设备连接到外部编程器。 STM32远程升级是指在网络连接的环境下,通过远程服务器将新的固件或软件包传输到设备,实现设备的无线升级。远程升级可以提高设备的维护效率和更新速度,并且避免了将设备带回到开发环境进行更新的麻烦。 OTA(Over-The-Air)是指通过空中接口进行数据传输的技术。在STM32OTA升级过程中,设备使用EC20开发套件进行通信。EC20是一款支持2G/3G/4G网络通信的模块,可以实现高速稳定的数据传输。 Boot和App源码是指STM32微控制器中的启动代码和应用程序的源代码。Boot源码负责启动设备并初始化系统,App源码则是主要的应用程序代码,实现设备的各种功能和业务逻辑。这些源码对于开发者来说是非常重要的,可以用于定制和优化设备的性能和功能。 对于这些资料,我们可以通过搜索STM32EC20相关的官方文档和开发者论坛来获取。这些资料包括技术手册、应用笔记、示例代码等,可以帮助我们理解和掌握STM32的IAP、远程升级、OTA等功能的实现方法和注意事项。此外,还可以参考其他开发者的经验和分享,加快自己的开发进度。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值