搜索
bottom↓
回复: 149

STM32 IAP程序 源码 和测试代码 有详细的中文注释

  [复制链接]

出0入0汤圆

发表于 2011-4-29 17:02:49 | 显示全部楼层 |阅读模式
今天调了一天的STM32 IAP程序,程序能下进去,但是一运行就出错,不知道为什么,我一直在查我的IAP程序是否有问题,改了很对地方,就是一直不对~~

      到网上查了很多人的版本,下载下载发现也都是不对,用IAP下载的程序一运行就出错。真是极度绝望。

      没办法,又去网上查,后来到21IC的网络上发现有个网友写错了测试的例程,我一看自己的也写错,难怪会一直错误,原来不是IAP程序的问题,是测试程序的自身问题,真是忽略了这一点,由于我直接那来就是原先的LED流水灯测试程序,单独下进去没问题,但是用IAP方式时下载是需要设置中断向量的偏置给忘记了和KEIL的配置,就因为这个搞了我将近一天的时间。

    真是血的教训,发出来跟网友分享下,让大家引以为鉴~~

    我的IAP程序把下载的程序设置的起始地点是:0x8003000,所以对LED流水灯的程序需要更改如下:

(原文件名:2011-04-29_150421.jpg)
KEIL也需要配置如下:


(原文件名:2011-04-29_150503.jpg)

注意看IROM1的起始地址是:0x8003000

上面的偏移量这个地址是要跟IAP程序里面的地址对应的;

下面是IAP程序里面的定义:


(原文件名:2011-04-29_150713.jpg)

另外我把ST官方的例程翻译了以下,看着英文不爽!!!谢了一个自己的测试例程代码~~
大家需要的可以来下载,亲自测试过的,好用~~


(原文件名:2011-04-29_164321.jpg)


(原文件名:2011-04-29_164340.jpg)


(原文件名:2011-04-29_164457.jpg)

下面是源码和测试代码:
点击此处下载 ourdev_635251YSTOXH.rar(文件大小:922K) (原文件名:STM32 IAP源码和测试代码.rar)


也可以去我的CSDN空间下载:
http://download.csdn.net/source/3236446

说明:如果有什么不明白的,或者有什么需要,更多的请关注我的博客:http://hi.baidu.com/wuguoyana/home
可以联系我~~~

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入8汤圆

发表于 2018-1-13 18:41:31 来自手机 | 显示全部楼层
不错,学习下

出0入0汤圆

发表于 2018-1-13 13:55:45 | 显示全部楼层
IAP是个非常实用的程序

出0入0汤圆

发表于 2017-2-23 08:35:30 | 显示全部楼层
本帖最后由 niba 于 2017-2-23 08:42 编辑

也就是图中红框的部分,楼主程序中没看到这一步。不知道其他网友看到这一部没?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-11-16 14:49:37 | 显示全部楼层
请问采用串口助手在下载image时,是直接发送.bin文件吗?

出0入0汤圆

发表于 2015-5-10 00:33:39 | 显示全部楼层

好东西。谢谢分享!

出0入0汤圆

发表于 2014-11-8 21:28:01 | 显示全部楼层
iap stm32 mark

出0入0汤圆

发表于 2014-11-8 21:20:30 | 显示全部楼层
谢谢分享,收藏了~

出0入0汤圆

发表于 2014-11-8 21:02:35 | 显示全部楼层
好东西,最近正在学这个,mark

出0入0汤圆

发表于 2014-11-8 21:02:15 | 显示全部楼层
STM32 IAP程序 源码 和测试代码

出0入0汤圆

发表于 2014-11-8 20:52:33 | 显示全部楼层
再顶一下。标记!用IAP更新的程序要重新设置中断向量的偏置。

出0入0汤圆

发表于 2014-11-8 20:19:25 | 显示全部楼层
在弄无线组网的项目,准备用无线boot更新节点程序,谢谢你的分享!

出0入0汤圆

发表于 2014-11-6 17:59:43 | 显示全部楼层
mark               

出0入0汤圆

发表于 2014-11-1 15:52:49 | 显示全部楼层
多谢,成功了。

出0入0汤圆

发表于 2014-9-30 09:52:53 | 显示全部楼层
学习中,下载代码阅读进行时。。。

出0入0汤圆

发表于 2014-9-7 08:13:51 | 显示全部楼层
学习了,最近要研究脱机下载

出0入0汤圆

发表于 2014-8-29 09:29:02 | 显示全部楼层
        mark IAP

出0入4汤圆

发表于 2014-5-4 16:42:24 | 显示全部楼层
写的很清楚

出0入0汤圆

发表于 2014-3-8 16:14:44 | 显示全部楼层
看完帖子美美的。

出0入0汤圆

发表于 2014-2-8 21:46:18 来自手机 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2014-1-21 19:54:23 | 显示全部楼层

mark.谢谢楼主

出0入0汤圆

发表于 2014-1-4 09:47:50 | 显示全部楼层
好东西,学习了!

出0入0汤圆

发表于 2014-1-3 22:12:43 | 显示全部楼层
楼主,问个问题啊,这段程序是不是一次接收完了再写进flash?

出0入0汤圆

发表于 2014-1-2 15:34:05 | 显示全部楼层
simon_leung 发表于 2014-1-2 13:52
刚好我最近又在调,用微软 winxp自带的超级终端可以传输完成并烧写正确,而用SecureCRT就不行,你试试用X ...

按你所教方法重试,果然成功!谢谢

出0入0汤圆

发表于 2014-1-2 13:52:29 | 显示全部楼层
zmh169 发表于 2014-1-2 13:28
我用超级终端下载应用程序,也遇到同样的问题。请问你怎么解决的?

刚好我最近又在调,用微软 winxp自带的超级终端可以传输完成并烧写正确,而用SecureCRT就不行,你试试用XP的超级终端

出0入0汤圆

发表于 2014-1-2 13:28:53 | 显示全部楼层
simon_leung 发表于 2012-4-1 17:52
请教,为什么我的这样?
Transferring xxx.bin...
  100%      55 KB    6 KB/s 00:00:09       0 Errors

我用超级终端下载应用程序,也遇到同样的问题。请问你怎么解决的?

出0入0汤圆

发表于 2013-12-31 10:22:21 | 显示全部楼层

出0入0汤圆

发表于 2013-12-30 14:56:27 | 显示全部楼层
先测试一下,慢慢理解

出0入14汤圆

发表于 2013-11-14 17:53:50 | 显示全部楼层
这个 IROM1 需要设置,那么 IRAM1 需要设置吗?

出0入0汤圆

发表于 2013-11-12 10:09:45 | 显示全部楼层
这个是真的不错的

出0入0汤圆

发表于 2013-11-11 18:56:56 | 显示全部楼层
不错,正在做的项目正用得到

出0入0汤圆

发表于 2013-11-7 18:48:50 | 显示全部楼层
正在研究IAP

出0入42汤圆

发表于 2013-11-7 11:04:48 | 显示全部楼层
楼主能不能帮我看看是什么问题?

我用ST官方的IAP程序,把USART1修改为USART2,下载程序正常,命令输入也正常,就是从芯片中读取bin文件时错误。
错误是这样的:电脑超级终端已经接收完所有数据包,可是没有退出接收界面,还在不断重试;芯片端已经退出Ymodem发送程序了

出0入0汤圆

发表于 2013-9-30 14:48:59 | 显示全部楼层
好东西,谢谢分享

出0入0汤圆

发表于 2013-9-30 14:45:52 来自手机 | 显示全部楼层
收藏,备用!

出0入0汤圆

发表于 2013-9-30 14:37:41 | 显示全部楼层
请问下楼主,有木有21IC那个源码地址。最近几天搞这IAP头都大了。。

出0入0汤圆

发表于 2013-9-14 11:42:29 | 显示全部楼层
正准备着手做这一块,感谢LZ

出0入0汤圆

发表于 2013-9-4 10:14:42 | 显示全部楼层

出0入0汤圆

发表于 2013-9-3 22:54:17 来自手机 | 显示全部楼层
好帖就是要顶

出0入0汤圆

发表于 2013-9-3 22:12:47 | 显示全部楼层
标记 学习 mark

出0入0汤圆

发表于 2013-8-30 16:39:52 | 显示全部楼层
标记,学习了!

出0入0汤圆

发表于 2013-8-30 15:17:39 | 显示全部楼层
辛苦了 谢谢 我一直都在学习 收藏了 感谢

出0入0汤圆

发表于 2013-8-26 10:34:47 | 显示全部楼层
好东西。谢谢分享!

出0入0汤圆

发表于 2013-8-24 22:27:22 | 显示全部楼层
标记一下,有时间学学.

出0入0汤圆

发表于 2013-8-24 21:07:51 | 显示全部楼层
感谢分享!

出0入8汤圆

发表于 2013-8-24 20:59:16 | 显示全部楼层
mark, 正需要,谢谢!

出0入0汤圆

发表于 2013-8-11 13:45:33 来自手机 | 显示全部楼层
mark……
顶一个…

出0入0汤圆

发表于 2013-7-29 16:54:04 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2013-7-28 08:13:54 | 显示全部楼层
谢谢分享!

出0入0汤圆

发表于 2013-7-27 23:52:46 | 显示全部楼层
mark!!!!

出0入0汤圆

发表于 2013-7-26 20:48:13 来自手机 | 显示全部楼层
不错的

出0入0汤圆

发表于 2013-7-26 17:18:58 | 显示全部楼层
下载后直接就可以用,楼主的代码过多的打印 浪费空间,没的必要 可以更新就可以了。

出0入0汤圆

发表于 2013-7-26 14:31:12 | 显示全部楼层
学习了,正好需要做这个

出0入0汤圆

发表于 2013-6-3 22:08:42 | 显示全部楼层
谢谢分享好资料

出0入0汤圆

发表于 2013-6-3 08:58:03 | 显示全部楼层
顶下   楼主代码很多值得学习的!!!

出0入0汤圆

发表于 2013-6-3 01:35:52 | 显示全部楼层
下载来测试一下,谢谢LZ无私分享

出0入0汤圆

发表于 2013-5-16 11:32:12 | 显示全部楼层
这个的USB驱动程序是什么啊???我的识别不了。

出0入0汤圆

发表于 2013-4-22 21:26:20 | 显示全部楼层
STM32 IAP程序 源码 和测试代码

出0入0汤圆

发表于 2013-4-22 21:11:54 | 显示全部楼层
谢谢楼长

出0入0汤圆

发表于 2013-4-8 08:18:14 | 显示全部楼层
呵呵,关注STM32IAP的大侠还不少啊。我这有一个完整的IAP方案带上位机程序下载程序VC编写的如果需要的话可以参考:http://www.amobbs.com/forum.php? ... ghlight=STM32%2BIAP

出0入0汤圆

发表于 2013-4-4 12:52:49 | 显示全部楼层
多谢

出0入0汤圆

发表于 2013-4-3 10:39:39 | 显示全部楼层
mark一下

出0入46汤圆

发表于 2013-1-24 18:04:40 | 显示全部楼层
其实我一直有点好奇,这两段程序既然是完全独立的,那么ram的地址为何还要重新分配呢,反正跳至用户程序区,iap的ram也不需要了,楼主可以解答一下吗?

出0入0汤圆

发表于 2013-1-12 15:11:19 | 显示全部楼层
顶起高人,。。。。。。。。。

出0入0汤圆

发表于 2012-11-21 19:44:09 | 显示全部楼层
mark           

出0入0汤圆

发表于 2012-11-14 21:00:33 | 显示全部楼层
不错!

出0入0汤圆

发表于 2012-10-29 08:55:10 | 显示全部楼层
请教你一个问题,你在KEIL里设置完IROM1,再在KEIL里面下载,是没有问题,如果我用J——FLASH ARM下载下去,就会出现中断向量不响应的情况。有没有遇到这种情况

出0入0汤圆

发表于 2012-10-8 16:55:01 | 显示全部楼层
马克一下。以后有用咯。

出0入0汤圆

发表于 2012-9-16 18:24:00 来自手机 | 显示全部楼层
额额,,,刚好要用

出0入0汤圆

发表于 2012-9-16 17:01:25 | 显示全部楼层
感谢楼主。留个抓在这儿,下次能找到。

出0入0汤圆

发表于 2012-9-16 08:02:37 来自手机 | 显示全部楼层
标记,方下次查找.

出0入0汤圆

发表于 2012-9-15 15:21:35 | 显示全部楼层
这东西好

出0入0汤圆

发表于 2012-9-14 12:40:54 | 显示全部楼层
我的芯片是STM32F103ZET6可以用这个程序么??楼主,求救啊

出0入0汤圆

发表于 2012-9-14 12:39:34 | 显示全部楼层
我现在在赶这个项目,能不能帮我一下呢??

出0入0汤圆

发表于 2012-9-14 12:38:30 | 显示全部楼层
代码很长,能不能改短一些呢??还有APP程序一定要.bin格式的么?

出0入0汤圆

发表于 2012-9-6 13:52:50 | 显示全部楼层
mark
                                                                  

出0入0汤圆

发表于 2012-8-30 11:28:31 | 显示全部楼层
要好好的学习学习啊

出0入0汤圆

发表于 2012-8-20 23:25:43 | 显示全部楼层
收集一下iap的帖子。

出0入0汤圆

发表于 2012-8-16 07:49:54 | 显示全部楼层

MARK个,学习IAP

出0入0汤圆

发表于 2012-8-15 16:25:16 | 显示全部楼层
正在实现,学习了

出0入0汤圆

发表于 2012-7-27 08:53:50 | 显示全部楼层
wu兄,程序中crc计算是您增加的内容,我现在有几处看不懂,试请教下

uint16_t UpdateCRC16(uint16_t crcIn, uint8_t byte)
这个函数是更新crc值,应该是按照字节算crc,现在我来算第一个字节,假如我要算0x23的crc,UpdateCRC16(0, 0x23)应该是返回0x23的crc,但是结果处来的还是0x23,请问这是为什么

出0入0汤圆

发表于 2012-7-24 12:44:46 | 显示全部楼层
mark!!!!!!!!!!!!!!!!

出0入0汤圆

发表于 2012-7-23 16:22:32 | 显示全部楼层
如果不等待直接发送C,接受方有没有            )此时接受方还在发这一包一直到发完,就算接受方一直          (因为串口的低速延迟),发送方又
这里  接收方改为发送方,发送方改为接受方

出0入0汤圆

发表于 2012-7-23 16:19:48 | 显示全部楼层
wu兄,有些问题想请教你,如果你看到了,请给我发消息,我发不了
这两天我一直都在研究这个ymodem协议
st官方iap程序里,只有接收程序。这个接收程序里  对包头解析时,如果接收到的第一个字节不符合包头命令,立马就返回错误了,然后程序就发送C给发送方,没有任何等待。
我的问题就在这里,如果不等待直接发送C,接受方有没有还在发送这一数据包时候处理接收命令的能力(比如,由于线路不良,发送方的正确包头被污染解析成错误包头)此时接受方还在发这一包一直到发完,就算接受方一直在监视接收缓冲区有没有接收,即使它收到C立马停下,此时可能也已经有一些字符发送出去(因为串口的低速延迟),发送方又对此判断错误又发C请求重新开始吗?我看到英文版的Ymodem协议里面建议说 接受方需等待线路干净后才能发(就是没有接收了)

这个是英文原文

Once into a receiving a block, the receiver goes into a one-second timeout
    for each character and the checksum.  If the receiver wishes to  a
    block for any reason (invalid header, timeout receiving data), it must
    wait for the line to clear.  See "programming tips" for ideas

所以我的意思是C这个启动传输命令任何时候必须等待接收缓冲空了再发C,怎么判断?等到超时为止,呵呵,可能拖慢时间

那个发送程序应该是wu兄的力作了,呵呵,但是我有个问题,里面怎么没有按照YMODEM协议,接收到C后再发送数据,函数内从头到尾没有这个接收判断

出0入0汤圆

发表于 2012-7-23 12:52:25 | 显示全部楼层
iap还是很有必要的啊。学习一下

出0入0汤圆

发表于 2012-7-21 09:13:31 | 显示全部楼层
common.c文件中的从串口获取字符串函数
void GetInputString (uint8_t * buffP)

这个函数最后有个语句
SerialPutString(("\n\r"));
这个是什么问题,是输出换行吗,可是换行得是\r\n啊

出0入0汤圆

发表于 2012-7-19 16:18:01 | 显示全部楼层
学习了!!谢谢楼主分享!

出0入0汤圆

发表于 2012-7-3 16:38:08 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2012-6-24 23:54:57 | 显示全部楼层
请问楼主,我如果用STM 32 IAP 程序 利用 SD卡 或usb  可以实现在线更新吗?

出0入0汤圆

发表于 2012-6-12 16:48:28 | 显示全部楼层
关注一下。可能会联系您啊。

出0入0汤圆

发表于 2012-6-8 17:32:44 | 显示全部楼层
mark一个啊

出0入0汤圆

发表于 2012-6-8 11:16:51 | 显示全部楼层
楼上您好:

想请教个问题,我这边测试应用程序代码200多KB,器件FLASH有512KB,需在IAP引导代码那里怎样设置才不会报以下错误:
The image size is higher than the allowed space memory!

分常感谢

出0入0汤圆

发表于 2012-5-22 10:36:40 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2012-5-22 09:01:09 | 显示全部楼层
正要学习呢 好的参考!

出0入0汤圆

发表于 2012-5-17 21:57:53 | 显示全部楼层
记号下,需要了再看  IAP

出0入0汤圆

发表于 2012-5-17 21:48:15 | 显示全部楼层
iap stm32 mark

出0入0汤圆

发表于 2012-5-17 07:52:56 | 显示全部楼层
有空看看 有空看看

出0入0汤圆

发表于 2012-5-16 21:27:32 | 显示全部楼层
现在下载不了了

出0入0汤圆

发表于 2012-5-2 10:49:12 | 显示全部楼层
我用的编译器IAR,需要在怎么设置编译器的地址呢?哪位大侠能否解答一下

出0入0汤圆

发表于 2012-4-14 22:26:06 | 显示全部楼层
挺好!入门的时候看看非常有帮助!

出0入0汤圆

发表于 2012-4-14 21:48:56 | 显示全部楼层
公司正好有个项目要用到,学习一下,谢谢了!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-5 04:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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