OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 12213|回复: 28

MiniSTM32 IAP 小贴士

[复制链接]
头像被屏蔽

88

主题

231

帖子

2

精华

高级会员

Rank: 4

积分
844
金钱
844
注册时间
2013-4-11
在线时间
40 小时
发表于 2013-5-25 21:35:16 | 显示全部楼层 |阅读模式
由于项目需求,在网上溜了一大圈狗后发现IAP这个好东西,然后又从战舰版发现居然有例程,立马改成Mini版实验之
结果出现各种雷人事件,给雷得外焦内嫩
扔上附件,懒得看废话的直接下载玩就是了

IAP指南


出现问题1:
编译过程不断提示RAM超标
虽然在usart.h里面修改了USART_REC_LEN大小使之编译成功
但总觉得不舒服,只剩下12k左右的大小
解决方法:
没仔细看代码,不清楚此程序是先缓存到RAM然后再烧写到flash里面
如果需要直接烧写到flash需要使用协议,如modbus

出现问题2:
烧写成功后,开始写入app,第一次写入可以正常运行
再次写入更新/全新app不能正常运行,需要重新烧写iap后才可使其正常
解决方法:
特么无力的解决方法,由于之前没做过flash模拟eeprom所以弯路绕了些
在stmflash.h中修改STM32_FLASH_SIZE大小为128即可解决

另外又把iap.c里面的烧写代码void iap_write_appbin(u32 appxaddr, u8 *appbuf, u32 appsize)修改了下
因为stm32f103rbt6(中容量)每页大小是1k,而stm32f103zet6(大容量)每页大小是2k
修改为宏定义,由stmflash.h中的STM32_FLASH_SIZE决定
按照stm的大中小容量划分写入方式

Tips:
IAP占用空间大小默认为:0x08005000,如果需要修改
APP中sys.c里面的MY_NVIC_SetVectorTable(NVIC_VectTab_FLASH,0X5000);(void MYRCC_DeInit(void)函)也需要相应修改

附件2修正了楼主附件的很多错误,主要是楼主的路径添加用的是 "sys/sys.h” 之类的,实际上,要加多../,改成: "../sys/sys.h” 就好了。
另外,楼主代码添加了一个ILI93XX.c文件,没用到,所以删掉就好了。


PS:我不知道谁给我编辑的帖子,程序本身是没有bug的
有问题的是我没说明清楚test.UV2那个我没修改(因为我没keil3,只有keil4)
直接用keil4开test.uvproj即可编译通过
附上截图说明
另外关于什么2.0跟3.5的库混用完全是扯淡,本程序是寄存器版本
(, 下载次数: 0)







正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

头像被屏蔽

88

主题

231

帖子

2

精华

高级会员

Rank: 4

积分
844
金钱
844
注册时间
2013-4-11
在线时间
40 小时
 楼主| 发表于 2013-5-25 21:35:26 | 显示全部楼层
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-26 00:33:21 | 显示全部楼层
不错,非常好的总结.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2012-12-13
在线时间
1 小时
发表于 2013-6-24 15:04:14 | 显示全部楼层
我也来观摩
回复 支持 反对

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2012-12-13
在线时间
1 小时
发表于 2013-6-24 15:53:41 | 显示全部楼层
好多错误,编译不通过
回复 支持 反对

使用道具 举报

头像被屏蔽

88

主题

231

帖子

2

精华

高级会员

Rank: 4

积分
844
金钱
844
注册时间
2013-4-11
在线时间
40 小时
 楼主| 发表于 2013-6-24 21:14:44 | 显示全部楼层
回复【5楼】lukyoo:
---------------------------------
你确定?截图,有图有真相
回复 支持 反对

使用道具 举报

19

主题

199

帖子

0

精华

高级会员

Rank: 4

积分
512
金钱
512
注册时间
2012-11-18
在线时间
72 小时
发表于 2013-10-18 10:23:24 | 显示全部楼层
回复【楼主位】nonplus:

由于项目需求,在网上溜了一大圈狗后发现IAP这个好东西,然后又从战舰版发现居然有例程,立马改成Mini版实验之
结果出现各种雷人事件,给雷得外焦内嫩
扔上附件,懒得看废话的直接下载玩就是了
IAP指南
出现问题1:
编译过程不断提示RAM超标
虽然在usart.h里面修改了USART_REC_LEN大小使之编译成功
但总觉得不舒服,只剩下12k左右的大小
解决方法:
没仔细看代码,不清楚此程序是先缓存到RAM然后再烧写到flash里面
如果需要直接烧写到flash需要使用协议,如modbus
出现问题2:
烧写成功后,开始写入app,第一次写入可以正常运行
再次写入更新/全新app不能正常运行,需要重新烧写iap后才可使其正常
解决方法:
特么无力的解决方法,由于之前没做过flash模拟eeprom所以弯路绕了些
在stmflash.h中修改STM32_FLASH_SI
......
---------------------------------
 我怎么试验不成功?FLASH地址是多少?能否上传APP?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-18 10:30:20 | 显示全部楼层
回复【7楼】lansing1648:
---------------------------------
Tips:
IAP占用空间大小默认为:0x08005000,如果需要修改
APP中sys.c里面的MY_NVIC_SetVectorTable(NVIC_VectTab_FLASH,0X5000);(void MYRCC_DeInit(void)函)也需要相应修改
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

199

帖子

0

精华

高级会员

Rank: 4

积分
512
金钱
512
注册时间
2012-11-18
在线时间
72 小时
发表于 2013-10-18 11:53:43 | 显示全部楼层
回复【8楼】正点原子:

回复【7楼】lansing1648:
---------------------------------
Tips:
IAP占用空间大小默认为:0x08005000,如果需要修改
APP中sys.c里面的MY_NVIC_SetVectorTable(NVIC_VectTab_FLASH,0X5000);(void MYRCC_DeInit(void)函)也需要相应修改

---------------------------------
 原子: .axf 文件怎么生成,编译的时候说找不到AXF文件.
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-18 13:07:32 | 显示全部楼层
回复【9楼】lansing1648:
---------------------------------
编译的时候就会生成啊。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

199

帖子

0

精华

高级会员

Rank: 4

积分
512
金钱
512
注册时间
2012-11-18
在线时间
72 小时
发表于 2013-10-18 13:32:22 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
搞定了,路径弄错了导致的.谢谢.
回复 支持 反对

使用道具 举报

19

主题

199

帖子

0

精华

高级会员

Rank: 4

积分
512
金钱
512
注册时间
2012-11-18
在线时间
72 小时
发表于 2013-10-24 09:14:10 | 显示全部楼层
大家好,我的APP程序已经19K了,RBT6 RAM只有20K,IAP无法一次性读取串口数据来更新FLASH,
怎样从串口读取一串数据(分段)直接写到FLASH?

有人说还加个协议,谁有做过这种方案吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-24 10:26:15 | 显示全部楼层
回复【12楼】lansing1648:
---------------------------------
modbus
比如,传100个字节,等待你写完,再传下一个100字节,如此循环。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

199

帖子

0

精华

高级会员

Rank: 4

积分
512
金钱
512
注册时间
2012-11-18
在线时间
72 小时
发表于 2013-10-24 11:31:13 | 显示全部楼层
回复【13楼】正点原子:

回复【12楼】lansing1648:
---------------------------------
modbus
比如,传100个字节,等待你写完,再传下一个100字节,如此循环。。。

---------------------------------
是不是PC上位机烧写软件也要做处理呢?
每传100字节暂停,收到回复之后再传送.
回复 支持 反对

使用道具 举报

头像被屏蔽

88

主题

231

帖子

2

精华

高级会员

Rank: 4

积分
844
金钱
844
注册时间
2013-4-11
在线时间
40 小时
 楼主| 发表于 2013-10-24 11:46:22 | 显示全部楼层
回复【14楼】lansing1648:
---------------------------------
握手通讯,考虑稳定性可以用串口的x y z这3种modem协议
不过对于原子的板子需要点改造,因为要用到流控
回复 支持 反对

使用道具 举报

105

主题

522

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1386
金钱
1386
注册时间
2012-10-23
在线时间
97 小时
发表于 2013-10-24 23:28:19 | 显示全部楼层
回复【15楼】nonplus:
---------------------------------
直接Ymodem就可以在原子板子上运行。不需要改造
回复 支持 反对

使用道具 举报

68

主题

212

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
312
金钱
312
注册时间
2013-5-7
在线时间
28 小时
发表于 2013-11-27 22:25:13 | 显示全部楼层
楼主,为了传输的正确性,是否需要加校验?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-27 23:18:31 | 显示全部楼层
回复【17楼】maxuejia:
---------------------------------
必须的
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

68

主题

212

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
312
金钱
312
注册时间
2013-5-7
在线时间
28 小时
发表于 2013-11-28 17:00:21 | 显示全部楼层
回复【18楼】正点原子:
---------------------------------
老大,可是我看你的iap例程里没有加校验啊,我不知道该怎么加啊。。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-28 23:16:14 | 显示全部楼层
回复【19楼】maxuejia:
---------------------------------
是的,我的没加,只是仅供参考....
实际使用,必须自行做协议,添加校验什么的
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

68

主题

212

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
312
金钱
312
注册时间
2013-5-7
在线时间
28 小时
发表于 2013-11-29 16:35:38 | 显示全部楼层
根本没法用,全是错误,2的库和3.5的库还混一块了

乱套了,楼主真是不用心的人
回复 支持 反对

使用道具 举报

68

主题

212

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
312
金钱
312
注册时间
2013-5-7
在线时间
28 小时
发表于 2013-11-29 16:52:30 | 显示全部楼层
不过还是非常的谢谢楼主,我参考了楼主的代码,总算实现了iap

再次感谢!!!
回复 支持 反对

使用道具 举报

头像被屏蔽

88

主题

231

帖子

2

精华

高级会员

Rank: 4

积分
844
金钱
844
注册时间
2013-4-11
在线时间
40 小时
 楼主| 发表于 2013-12-5 09:56:40 | 显示全部楼层
回复【21楼】maxuejia:
---------------------------------
晕,我给的是可行的……你自己乱改我有啥法
另外,不是2.0跟3.5的库混……是寄存器版本
你用keil4开test.uvproj直接编译成功
test.Uv2这个忘了说当时没修改,我只有keil4没keil3……
回复 支持 反对

使用道具 举报

26

主题

101

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2013-8-1
在线时间
57 小时
发表于 2014-4-10 16:32:39 | 显示全部楼层
回复【楼主位】nonplus:
---------------------------------
                   感谢楼主的总结,终于实现了IAP了
回复 支持 反对

使用道具 举报

4

主题

12

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2014-6-17
在线时间
0 小时
发表于 2014-7-5 16:04:55 | 显示全部楼层
多谢nonplus的分享,在原有基础上改版实现了485的IAP升级。
如果要加入CRC校验的话能说下大致上的流程吗?
毕竟上位机导入的是KEIL生成的BIN
有付出才有收获
回复 支持 反对

使用道具 举报

13

主题

89

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-3-11
在线时间
5 小时
发表于 2014-7-5 22:03:55 | 显示全部楼层
一开始看一头雾水……原来帖子被别人编辑过,楼主好委屈……哈哈
回复 支持 反对

使用道具 举报

10

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2014-4-12
在线时间
12 小时
发表于 2014-9-30 09:33:48 | 显示全部楼层
挺好的,我也去玩一玩!
回复 支持 反对

使用道具 举报

5

主题

66

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
232
金钱
232
注册时间
2016-10-20
在线时间
42 小时
发表于 2018-3-30 10:25:20 | 显示全部楼层
mark thank
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2017-11-9
在线时间
12 小时
发表于 2019-1-15 22:25:06 | 显示全部楼层
谢谢!我正在研究。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-23 04:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表