STM32F030C8T6 IAP 开发记录

本文记录了在STM32F030C8T6上进行IAP(In-Application Programming)开发的过程,包括遇到的挑战和解决方案。通过标准库减小代码体积,避免HAL库带来的体积过大问题。文章详细介绍了如何进行Flash操作和跳转到APP,并提醒在跳转前需恢复外设初始状态。在APP开发阶段,作者解决了官方Demo中的警告问题,调整了RAM设定以消除编译警告。

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

昨天发出了单片机IAP的上位机程序,由于没有实际测试IAP APP的运行情况,所以便没有发出来IAP程序。
上位机相关的帖子:

http://blog.youkuaiyun.com/sunhaobo1996/article/details/79233285

说是自己写的,但还是参考了官方给出的Demo,所以叫官方精简定制版会更好一些?
使用标准库来尽可能减小体积,当初想用HAL库,用MXCube来生成初始化代码,但HAL生成的代码太大,什么都没写就将近5K,用在F4P6上性价比太低,果断放弃。
大致提一下这个的功能。

CRC8验证
1024以下可变包长

本来还有个分包序列号这东西,但感觉没什么用,就删掉了(毕竟也不乱序发包……都自带CRC与ACK了……)

难点,可能也就是对Flash的操作与如何跳转到APP上。

但怎么进行跳转,官方Demo已经给出了:

    if (((*(__IO uint32_t *)APPStartFlashAddr) & 0x2FFE0000) == 0x20000000)
    {
      /* Jump to user application */
      JumpAddress = *(__IO uint32_t *)(APPStartFlashAddr + 4);
      Jump_To_Ap
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值