OpenEdv-开源电子网

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

iap mini板终于调试通了,发帖庆祝一下。

[复制链接]

11

主题

36

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2012-8-22
在线时间
0 小时
发表于 2012-11-2 10:42:46 | 显示全部楼层 |阅读模式
iap 功能其实很实用。

工作之前还不知道有iap这个东东,后来工作了。公司用的就是这技术,

每次发给客户的软件都是bin文件让客户升级MCU软件。

过程是这样的,给bin文件客户,放入sd卡中,开机,升级。

免除了拆卸机器,烧录这样繁琐的过程,并且客户没有烧录器,可以挂在网上,然客户自行下载升级。

很方便,可是我公司却将iap功能打包了。看不见源码。

这技术我觊觎很久了。

有幸网络认识原子大哥,投身mini大营,有了一个研究平台,

并且大哥开源高水准的代码,让我获益匪浅。


现在应用程序是通过串口发送,接下来通过SD卡读取应用程序,岂不是很爽。

嘎嘎。 代码是移植原子哥的。







































成功的欲望强烈到一定程度的时候足够征服世界。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-11-2 11:11:50 | 显示全部楼层
回复 支持 反对

使用道具 举报

4

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2012-6-18
在线时间
0 小时
发表于 2012-11-2 16:07:23 | 显示全部楼层
我也正在看原子哥的IAP,准备借鉴借鉴用到gprs升级,嘿嘿。。。
回复 支持 反对

使用道具 举报

6

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2012-10-1
在线时间
0 小时
发表于 2013-2-21 09:44:36 | 显示全部楼层
回复【楼主位】强子:
---------------------------------
你好,我在学习IAP方案。我也想在mini板上调试。你能把你的程序发给我一份吗?谢谢,非常谢谢。
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2013-4-12
在线时间
0 小时
发表于 2013-4-12 17:33:22 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------

原子哥,有没有在之前stm32f103+enc28j60的基础上完成基于HTTP协议的以太网IAP功能???
如果没有,可不可以给点指点,我觉得这个IAP也很实用。

ps:你的例程里面有usart iap的实验,也有uip的实验(貌似没有usos+lwip),那么如何完成ucos+lwip+iap~~~
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2013-4-24
在线时间
0 小时
发表于 2013-4-24 22:39:24 | 显示全部楼层
回复【楼主位】强子:
-------------------------
你好!我也看了你一些关于IAP升级的问题,这里我也有同样的疑问,请你帮我解答一下,好吗!
在串口IAP例程里有这么一句话:if(((*(vu32*)(0X20001000+4))&0xFF000000)==0x08000000这里为什么是等于0x08000000?

在(0X20001000+4)这个地址里面的数据为什么是0x08000000呢?0x08000000只是代表FLASH的起始运行地址啊?

我的疑问其实就是当取*(vu32*)(0X20001000+4)这个地址保存的IAP数据的时候,它就是0X08XXXXXX吗? 
我在一个.BIN文件中摘了这么一段: 

              0   1   2    3    4     5     6    7    8    9     A    B     C     D     E    F  
00000000H: 78  08 20  00  89   01   00  08  E9  14   00  08   E1   14   00   08 

如果将这一.BIN文件发送给以0X20001000为起始地址的接收缓冲区后,那么当读取(0X20001000+4)这个地址的值我理解的应是0X89010008.
回复 支持 反对

使用道具 举报

7

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2013-11-9
在线时间
13 小时
发表于 2013-11-9 09:00:00 | 显示全部楼层
原子哥:我也有同问,当串口已经发送完数据后,我调试iap程序时为什么if(((*(vu32*)(0X20001000+4))&0xFF000000)==0x08000000不成立,仿真得到(((*(vu32*)(0X20001000+4))&0xFF000000 == 0XC1000000,不知道是哪部出现了问题,望提点下。
回复 支持 反对

使用道具 举报

69

主题

216

帖子

0

精华

高级会员

Rank: 4

积分
514
金钱
514
注册时间
2012-3-21
在线时间
0 小时
发表于 2013-11-9 10:40:08 | 显示全部楼层
IAP是什么?LZ科普下....
回复 支持 反对

使用道具 举报

7

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2013-11-9
在线时间
13 小时
发表于 2013-11-9 15:13:44 | 显示全部楼层

希望大神过来续贴。。。。。。。。。

回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-9 19:03:21 | 显示全部楼层
回复【8楼】leinou:
---------------------------------
你可以检查下你的.bin文件,看看第4个字节开始,是不是合法的地址?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

68

主题

212

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
312
金钱
312
注册时间
2013-5-7
在线时间
28 小时
发表于 2013-11-25 22:12:10 | 显示全部楼层
你的代码在哪里啊?
回复 支持 反对

使用道具 举报

12

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
292
金钱
292
注册时间
2014-3-6
在线时间
31 小时
发表于 2014-4-18 15:07:33 | 显示全部楼层
LZ能不能分享一下代码?ye_zi204@163.com谢谢
回复 支持 反对

使用道具 举报

38

主题

302

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
440
金钱
440
注册时间
2012-3-6
在线时间
5 小时
发表于 2014-5-8 14:07:14 | 显示全部楼层
回复【5楼】mint:
---------------------------------
我实现了TCP升级,也很容易的。一个原理,不过不是一次性发送几十K 只能分割发送写入;
ES?全称?Embedded?Show;ES是由众多嵌入式爱好者组织的一个团队,致力于带领学生进步,帮助毕业生找到工作,更重要的是在职的嵌入式工作者提供自主外包和创业的机会。(详情进群查看) ES的宗旨是:交流共享与合作发展。ES?QQ群?第三群:152820643?。群内论坛有很多嵌入式开发模块解决方案可以参考。进群的立马共享自己做的模块简介。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2013-3-26
在线时间
0 小时
发表于 2014-6-18 19:03:07 | 显示全部楼层
楼主能不能给我你的这份资料,我调试IAP总出问题,能不能给我一份让我参考下(bootloader+一个app)!
非常感谢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

18

主题

69

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2013-11-26
在线时间
0 小时
发表于 2014-8-3 19:39:23 | 显示全部楼层
回复【楼主位】强子: 
--------------------------------- 
楼主 我请教一个问题 app的程序的起始位置 是要 改成iap之后的位置吧
唯累过,方得闲。唯苦过,方知甜…
回复 支持 反对

使用道具 举报

6

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
341
金钱
341
注册时间
2013-11-10
在线时间
91 小时
发表于 2014-10-29 15:15:17 | 显示全部楼层
回复【3楼】stonenth:
---------------------------------
你好,GPRS的方案成功了吗?
回复 支持 反对

使用道具 举报

42

主题

208

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
383
金钱
383
注册时间
2014-6-12
在线时间
35 小时
发表于 2014-10-29 15:59:30 | 显示全部楼层
lz怎么不见代码啊
回复 支持 反对

使用道具 举报

5

主题

91

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2014-10-28
在线时间
14 小时
发表于 2014-10-29 16:18:37 | 显示全部楼层
恭喜,IAP以后研究下,不过我想高下ISP,用usb-fs接口,不过这个貌似大家都是串口接口搞的isp
成功必然有成功的原因,
回复 支持 反对

使用道具 举报

15

主题

181

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
389
金钱
389
注册时间
2014-11-8
在线时间
40 小时
发表于 2015-5-7 13:11:04 | 显示全部楼层
回复【15楼】陈阳:
---------------------------------
回复【19楼】郭刘阳:
---------------------------------
http://www.openedv.com/posts/list/10027.htm
Good good study , day day up...
回复 支持 反对

使用道具 举报

4

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2012-10-30
在线时间
6 小时
发表于 2015-5-13 14:04:23 | 显示全部楼层
有代码借鉴一下吗
回复 支持 反对

使用道具 举报

8

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2015-3-28
在线时间
4 小时
发表于 2015-6-27 10:05:34 | 显示全部楼层
回复【21楼】Just Beat It:
---------------------------------
我用楼主的代码在updata()函数里,进度条显示2%不动,什么原因能不能帮帮忙,谢谢!
回复 支持 反对

使用道具 举报

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2015-6-27 10:54:13 | 显示全部楼层
 从SD卡加载BIN文件升级,在我们已有代码上实现这个功能是个好的练习IAP的过程。
我们默认综合实验代码就是IAP从SD卡加载BIN,来实现测试的。

主函数用到的核心代码:
 
[mw_shl_code=c,true]loadFlashAppbin();//加载bin到flash Sys_Soft_Reset();//软复位 RUN_APP: if(((*(vu32*)(FLASH_APP1_ADDR+4))&0xFF000000)==0x08000000){ iap_load_app(FLASH_APP1_ADDR); }[/mw_shl_code]

 
[mw_shl_code=c,true] int loadFlashAppbin(void) { const u8 *UNIGBK_SDPATH="0:/TEST/warship.bin"; //UNIGBK.BIN的存放位置 u16 bread; u32 offx=0; u8 rval=0; FIL * fftemp; u8 *tempbuf; u8 res; u32 i=0; fftemp=(FIL*)mymalloc(SRAMIN,sizeof(FIL)); //分配内存 tempbuf=mymalloc(SRAMIN,4096); if(tempbuf==NULL)rval=1;//分配内存失败 res=f_open(fftemp,(const TCHAR*)UNIGBK_SDPATH,FA_READ); if(res) rval=2;//打开文件失败 LCD_ShowString(60,40,200,16,16,"Loading...!"); if(rval==0) { while(res==FR_OK) { res=f_read(fftemp,tempbuf,4096,(UINT *)&bread); if(res!=FR_OK) {rval=3; break; } iap_write_appbin(offx+FLASH_APP1_ADDR,tempbuf,bread);//更新FLASH代码 offx+=bread; i++; if(i%50==0) { LCD_ShowString(60,(i/50)*20+40,200,16,16,"Loading...!"); LED0=0; LED1=0; delay_ms(100); LED0=1; LED1=1; } if(bread!=4096) break; } } f_close(fftemp); myfree(SRAMIN,fftemp); //释放内存 myfree(SRAMIN,tempbuf); //释放内存 return rval; }[/mw_shl_code]


我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复 支持 反对

使用道具 举报

7

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2015-8-18
在线时间
10 小时
发表于 2015-8-21 16:26:20 | 显示全部楼层
回复【4楼】Aaron:
---------------------------------
你的IAP调试成功了么??成功的话能给我发一份么?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 16:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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