[应用相关] 关于STM32 IAP

[复制链接]
 楼主| sensitivity 发表于 2020-7-24 20:06 | 显示全部楼层 |阅读模式
转眼间天亮了......

然后就想起了一个朋友QQ的个性签名:年轻人总是要为一些自己认为有意义的事情而废寝忘食,通宵达旦,直至白发方休........
对了这篇**一定会介绍的很详细,请细嚼慢咽.......嗯,我是这样认为的,,,,,,
上面是昨天写的,应该说是今天写的,,今天发现发现博客又不能复制粘贴图片了!!!!然后就睡了一觉,,麻烦。。。。是不是因为我写的博客有太多的图片而把我屏蔽了。能让人一目了然的就是图片。。。。
说一下自己是如何做的,,,



作者:杨奉武
链接:https://www.jianshu.com/p/8eb8465d5dee
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 楼主| sensitivity 发表于 2020-7-24 20:06 | 显示全部楼层
先说一下实现的功能

IAP程序的功能

726325f1acec033a42.png
 楼主| sensitivity 发表于 2020-7-24 20:07 | 显示全部楼层
再看自己的用户程序--用户程序自己也做了些设置
317795f1acee8d32e3.png
 楼主| sensitivity 发表于 2020-7-24 20:07 | 显示全部楼层
对了关于我为什么拷贝到Flash里面------自己用的单片机的RAM不够用,存不了用户程序,所以自己就定义了一个小点的数组(环形队列),串口一边接收,一边往Flash里面写,环形队列可是帮了大忙了,,,,
 楼主| sensitivity 发表于 2020-7-24 20:08 | 显示全部楼层
把IAP升级程序下进去,以后就直接通过串口发送自己的用户程序就行了...什么都不需要做了,先说一下操作过程吧!最后有自己的源码
 楼主| sensitivity 发表于 2020-7-24 20:09 | 显示全部楼层
IAP程序软件不需要任何配置
104825f1acf4998932.png
266475f1acf503614d.png
 楼主| sensitivity 发表于 2020-7-24 20:15 | 显示全部楼层
波特率太快的话,数据来不及写入Flash,环形队列容易溢出,,太慢的话,程序发送的慢。。。
 楼主| sensitivity 发表于 2020-7-24 20:16 | 显示全部楼层
用户程序软件需要一些配置
942505f1ad0f3dfe8e.png
 楼主| sensitivity 发表于 2020-7-24 20:17 | 显示全部楼层
8006000告诉编译器我的用户程序打算在这里开始,你帮我设置一下吧,默认是在8000000开始的

0x1A000,就是告诉编译器我的程序空间有这么大。
 楼主| sensitivity 发表于 2020-7-24 20:17 | 显示全部楼层
我的用户程序里面也是设置的6000,这个一定要和程序设置的一样哈
133265f1ad152d7439.png
关于这个我后面会说为什么这样设置。。。当然也可以百度一下。
 楼主| sensitivity 发表于 2020-7-24 20:18 | 显示全部楼层
其实我的本来是
91405f1ad17ae4707.png
 楼主| sensitivity 发表于 2020-7-24 20:19 | 显示全部楼层
20000换成十进制就是131072个字节  除以1024 等于128

由于我先把IAP程序下进去了,IAP程序也需要空间来运行,,,我就给了他6000 换成十进制就是24576  除以1024就是24K
 楼主| sensitivity 发表于 2020-7-24 20:22 | 显示全部楼层
我的总共是128K然后去掉IAP暂用的24K就是  128-24 = 104K  = 106496个字节   换成16进制就是 1A000

所以我上面写了1A000

对了如果您的板子是大容量的如果您非常明白就自己随意修改把,别忘了修改程序里的那个,,,
 楼主| sensitivity 发表于 2020-7-24 20:24 | 显示全部楼层
如果不是很明白按照上面修改就行,后面会让您明白
800525f1ad29212eb0.png
 楼主| sensitivity 发表于 2020-7-24 20:25 | 显示全部楼层
这个呢就是让Keil软件帮忙生成bin文件

F:\Keil4&&MDK4.70A\ARM\ARMCC\bin\fromelf.exe   --bin -o  .\Progect\Progect.bin  ..\Progect\output\Progect.axf

F:\Keil4&&MDK4.70A\ARM\ARMCC\bin\fromelf.exe   --bin -o这个是执行的命令,就是生成bin文件,根据自己的安装路径找哈

.\Progect\Progect.bin 就是告诉他把生成的bin文件放在哪个地方

..\Progect\output\Progect.axf 这个就是自己工程编译的时候产生的.axf文件,根据自己的找到

./当前目录

../上一级目录

../../上上一级目录
 楼主| sensitivity 发表于 2020-7-24 20:26 | 显示全部楼层
关于Bin文件和Hex文件

http://blog.sina.com.cn/s/blog_6b94d5680100lo2h.html

这是我的用户程序的Hex与Bin
 楼主| sensitivity 发表于 2020-7-24 20:27 | 显示全部楼层
 楼主| sensitivity 发表于 2020-7-24 20:28 | 显示全部楼层
咱们自己设置好写到哪里了,所以前头的就不需要了,后面的校验也不需要了,,不过呢应该向他那样加上校验,数据对了再写进去!!!!
 楼主| sensitivity 发表于 2020-7-24 20:28 | 显示全部楼层
好生成了bin文件
929035f1ad3e20ee06.png
 楼主| sensitivity 发表于 2020-7-24 20:29 | 显示全部楼层
然后
93545f1ad3fdda60a.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

216

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

9

主题

216

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部