STM32F030之IAP代码编写

程序收尾总想着以后更新的方便性,采用在应用编程(in application programming),通过bootload引导单片机自己往程序存储器里写数据或修改程序。下面简介stm32f030的iap方法。不同于stm32f1系列,f0没有中断向量偏移寄存器。所以在app程序的开头要添加以下代码。为什么这样做??
可以看到函数用了for循环将矢量表拷贝到0 x20000000 sram的基地址,即将矢量表由flash映射到了sram。所以在mdk里面设置flash偏移地址的时候,同时要设置sram偏移地址。如下截图
//app程序开头加入iap_set(void)函数
有target对话框可以看出app程序有flash地址0x8001400开始执行。sram数据则有0x20000c0出开始存储。
说完app代码要处理事项,下面说一下iap代码编写
程序更新完以后执行以上跳转函数即可执行更新的app代码。关于如何通过iap将代码将app代码(bin文件)传到单片机flash,可以通过串口分包传输。因为f0flash是1k为一页所以这里我用的是1k缓存,即接收串口1k的数据量就执行一次flash写操作,传输到最后不满1k,填写0xff按照1k数据写。写flash代码如下
关于iap如何接收串口的数据,我用的是正点原子的xcom v2.0串口调试助手通过协议传输每次传输128字节数据,执行的iap串口数据接收。

nBn结构InAs/GaSb超晶格中/长双波段探测器优化设计描述
科普四种常见的电脑显示器连接线接口
区块链的革命已经到来,是否又会一夜暴富?
称重传感器的使用
索尼XPERIA:曲面屏+无实体按键+投影操控,梦幻般设计
STM32F030之IAP代码编写
将比普通发动机更省油?深度解析英菲尼迪2.0T可变压缩比发动机
无线通信中的天线需要经过哪些性能测试?
oppor11什么时候上市?oppor11最新消息:oppor11发布会阵容赶超春晚,秒杀友商演唱会
念念不忘必有回响 MIPS找到了新东家
vivoNEX标准版体验 到底怎么样
基于CAN总线的镍氢电池管理系统设计
Vivado时序案例分析之解脉冲宽度违例
未来五年,超高清视频迎来黄金发展期
德勤中国智能制造深度报告:中国制造赶德超美的秘密
谷歌研发的光纤项目推进在美国的进展
下半年国内光伏行业将实现恢复性增长,四季度有望迎来装机高潮
上传速率严重不对等,工信部着手解决上传速度问题
电动机保护器的的工作原理
随着智能家居时代到来 格力的增长空间将会非常大