一个STM32的IAP程序,测试可以用

  注意使用的是keil5.11a


    自己根据开发指南写的一个IAP程序。在mini板上成功跑一个app。因为RB是128K的flash,所以将rom分割为 27K 1K 100K。其中27K 用来存储IAP。1K 用来存储一些信息,目前暂未使用到。100K就是app用的啦。
    IAP程序的大致流程是这样的,上电后,在5s内(实际测试发现大于5s,暂时不管这个误差),轮询串口是否发送:updata;(update这个可以随意,保证:;中间有6个字母就好)。如果超时没有收到:update;那么程序跳转到app,如果没有app,或者app出错,红灯常亮。如果收到:update;那么进入烧写程序。这时候,串口转为中断方式接收数据。
    
    烧录形式是这样的。按照1K,1K大小烧录,需要对bin文件进行分割。开辟了一个串口缓存,大小为1K+8。发送格式是这样子的,

    data_len_L  data_len_H  data(no more than 1K)   index_L index_H CRC

    index_L index_H CRC(4B)这六位暂时没用到,填充00,data_len为要写入数据长度,最大不会超过1K。

    目前IAP编译后才7K,还可以加入更多功能,预计加入STM32的CRC。app的bin文件需要自己分割,可以使用winHex,然后使用XCOM V2.0来发送,,我准备写个上位机用来传输bin,这样就不用自己分割bin了。



    另外,app的做法,请参考开发指南。

 

  没发现博客园可以上传附件,源码可以到开源电子网下载http://www.openedv.com/posts/list/38799.htm

转载于:https://www.cnblogs.com/xiemm/p/3945668.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值