博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
stm32 IAP
阅读量:5289 次
发布时间:2019-06-14

本文共 802 字,大约阅读时间需要 2 分钟。

注意APP不能擦除整个chip

 

IAP的逻辑

先给APP发送指令,要进入IAP了;

主程序跳转到APP段(复位);

IAP返回确认数据(从APP进入的)

 

命令:

从APP进入:

T=01,05                   R=0xaa  进入IAP  

T=02,05                   R=0xaa  初始化地址

T=03,2048字符             R=0xaa  发送2048个字符  

。。。

T=04,4byte剩余字符count,剩余字符    R=0xaa

T=05 05    测试          R=0xaa;

 

 

 

 

IAP项目

1、接收APP程序数据,串口命令有两种,1是整包,2是散包(最后一个包);

2、进入跳转的条件:

/*

程序已下载  由APP进入  超时  程序更新完成

A B C D

满足如下条件就会跳转:
AB*+ABC+ABD
A*D
*/

超时:由APP进入的,但是串口通信突然中断了,程序还要继续运行下去,所以只能是,程序已下载的情况下,超过一定时间新程序还没下载完,就直接跳转

 

APP项目

1、魔术棒中设置程序启动的地址;

2、程序中设置中断向量表的新地址:   SCB->VTOR = FLASH_BASE | 0x10000; /* Vector Table Relocation in Internal FLASH. */

3、可以复位,进入IAP:__set_FAULTMASK(1);    NVIC_SystemReset();

 

移植到stm32f1

cube生成stm32f1的工程

主函数包含文件iap.h

main函数更新为iap程序

flash的erase更改为stm32f1的库,把stm32f4的文件改为stm32f1

 

转载于:https://www.cnblogs.com/deyicun/p/11139201.html

你可能感兴趣的文章
51Nod 1091 线段重叠 贪心 区间重叠
查看>>
[翻译] NimbusKit
查看>>
POJ 2196
查看>>
熟悉下 mysql 的数据库导入导出
查看>>
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例(转)
查看>>
Machine Learning for hackers读书笔记(七)优化:密码破译
查看>>
Python基础第24天
查看>>
使用NPOI 做Excel导出
查看>>
L0/L1/L2范数(转载)
查看>>
[deviceone开发]-数据绑定示例
查看>>
CSU - 1770 按钮控制彩灯实验
查看>>
使用函数处理数据
查看>>
C语言函数返回数组
查看>>
动态对象(dynamic)的用法
查看>>
第九周软件工程作业-每周例行报告
查看>>
linux常用命令二
查看>>
angularJS全选功能实现
查看>>
礼物 HYSBZ - 4827 (fft + 构造 )
查看>>
ASP.NET MVC5 Authentication Filters执行链
查看>>
基于谱减法的声音去噪
查看>>