搜索
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周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2011-4-29 17:05:18 | 显示全部楼层
真晕啊,直接上传上来多好了。

出0入0汤圆

发表于 2011-4-29 17:05:25 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2011-4-29 17:06:09 | 显示全部楼层
回复【1楼】STM32_NXP  
-----------------------------------------------------------------------

已经上传了!!你来的太快了,还没来的急上传~~

出0入0汤圆

发表于 2011-4-29 18:47:16 | 显示全部楼层
怎么下载呢?

出0入0汤圆

 楼主| 发表于 2011-4-29 20:32:59 | 显示全部楼层
回复【4楼】fisher3014  
-----------------------------------------------------------------------

下载地址不就在上面吗?

出0入0汤圆

发表于 2011-4-30 20:13:31 | 显示全部楼层
你试试能不能在芯片写保护的情况下做整片芯片的IAP呗。。。

出0入0汤圆

 楼主| 发表于 2011-4-30 20:33:17 | 显示全部楼层
回复【6楼】gdzhong  
-----------------------------------------------------------------------

整个芯片的估计不行的吧?你可以自己试试看~~

出0入0汤圆

发表于 2011-5-4 22:01:01 | 显示全部楼层
标记学习。

出0入0汤圆

发表于 2011-8-6 17:50:55 | 显示全部楼层
先记下

出0入0汤圆

发表于 2011-8-8 09:24:16 | 显示全部楼层
STM32 IAP.

出0入0汤圆

发表于 2011-8-8 13:57:39 | 显示全部楼层
标记~~

出0入0汤圆

发表于 2011-8-8 14:46:42 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-8 17:36:40 | 显示全部楼层
中断向量表的位置为什么要设置成0x3000,设置成0x00不行吗?
这个0x3000是你随意设的吗?  还是有什么特别的用意

出0入0汤圆

 楼主| 发表于 2011-8-8 19:57:02 | 显示全部楼层
回复【15楼】liwang0806  
-----------------------------------------------------------------------

用IAP需要重设的,要不让程序是不对的,3000只是预留了一点给IAP程序,你也可以设置的更大的,不过要统一起来才行。

出0入0汤圆

发表于 2011-8-8 20:01:23 | 显示全部楼层
标记~~

出0入0汤圆

发表于 2011-8-20 16:34:43 | 显示全部楼层
马上就要用上

出0入0汤圆

发表于 2011-9-9 14:52:05 | 显示全部楼层
马上要用了,还是没有理解这个要怎么用啊

出0入0汤圆

 楼主| 发表于 2011-9-9 15:02:03 | 显示全部楼层
回复【20楼】251131250  
-----------------------------------------------------------------------

使用非常简单,先下IAP程序,再通过串口的超级终端更新应用程序就可以了。

出0入0汤圆

发表于 2011-9-9 23:43:00 | 显示全部楼层
不错不错!标记一下。

出0入0汤圆

发表于 2011-9-10 00:01:50 | 显示全部楼层
mark.谢谢楼主的成果

出0入0汤圆

发表于 2011-9-10 07:51:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-10 11:28:59 | 显示全部楼层
迟来的春天呀
以前一项目也想搞IAP下载,研究了好久放弃了

出0入0汤圆

发表于 2011-9-10 15:27:02 | 显示全部楼层
谢谢啦~

出0入0汤圆

发表于 2011-9-15 08:52:30 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-9-15 09:12:40 | 显示全部楼层
留个记号

出0入0汤圆

发表于 2011-9-15 09:24:15 | 显示全部楼层
IAP是个好东西呀。

出0入0汤圆

发表于 2011-9-15 09:56:47 | 显示全部楼层
MARK个,学习IAP

出0入0汤圆

发表于 2011-9-25 22:52:47 | 显示全部楼层
标记,学习了!

出0入0汤圆

发表于 2011-9-28 17:01:15 | 显示全部楼层
是要下载hex文件还是bin到app程序区,做固件升级?

出0入0汤圆

发表于 2011-10-8 16:12:55 | 显示全部楼层
马克

出0入0汤圆

发表于 2011-10-8 23:47:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-13 14:53:40 | 显示全部楼层
学习了,谢谢LZ分享

出0入0汤圆

发表于 2011-10-13 14:58:49 | 显示全部楼层
学习,IAP

出0入0汤圆

发表于 2011-10-13 19:21:22 | 显示全部楼层
好东西啊

出0入14汤圆

发表于 2011-10-14 22:56:40 | 显示全部楼层
测试了一下,好像有点问题
1 使用楼主的IAP,下载闪灯的程序,下载完后,连IAP都进不去。(但在下载完后,马上在IAP中选择执行就可以,重启后就不行了)

2 使用ST原配的IAP,下载闪灯程序,可以正常运行

出0入0汤圆

 楼主| 发表于 2011-10-14 23:56:21 | 显示全部楼层
回复【38楼】lordor  
-----------------------------------------------------------------------

那肯定是自己问题啦,不要怪我的代码,我就是在原厂上注释的,我验证是好的,无数网友验证都是好用的,还是你自己找原因把。。

出0入0汤圆

发表于 2011-10-15 16:15:39 | 显示全部楼层
收藏

出0入0汤圆

发表于 2011-10-17 19:21:29 | 显示全部楼层
真晕啊,直接上传上来多好了

出0入0汤圆

发表于 2011-10-25 18:02:36 | 显示全部楼层
好东西啊 谢谢lz分享

出0入0汤圆

发表于 2011-11-7 19:21:03 | 显示全部楼层
学习了!!谢谢楼主分享!

出0入0汤圆

发表于 2012-1-8 12:35:06 | 显示全部楼层
是要先下ST的IAP 程序,然后再下用户程序吗??好多疑问啊

出0入0汤圆

发表于 2012-2-25 00:35:46 | 显示全部楼层
好东西啊 ,好东西啊 谢谢lz分享

出0入0汤圆

发表于 2012-2-26 09:48:19 | 显示全部楼层
MARK

出0入0汤圆

发表于 2012-3-2 00:43:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-4-1 17:52:51 | 显示全部楼层
本帖最后由 simon_leung 于 2012-4-1 17:53 编辑

请教,为什么我的这样?
Transferring xxx.bin...
  100%      55 KB    6 KB/s 00:00:09       0 Errors
Failed to receive the file!

出0入0汤圆

发表于 2012-4-14 10:46:53 | 显示全部楼层
公司项目急需IAP,先下了学习学习。
请问一句,如果应用程序很大,下载起来会不会很慢,下载过程中被干扰了出错怎么办,有警告或者预防方法吗?

出0入0汤圆

发表于 2012-4-14 21:48:56 | 显示全部楼层
公司正好有个项目要用到,学习一下,谢谢了!!

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出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-6-8 17:32:44 | 显示全部楼层
mark一个啊

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

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

出0入0汤圆

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

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

出0入0汤圆

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

出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-8-15 16:25:16 | 显示全部楼层
正在实现,学习了

出0入0汤圆

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

MARK个,学习IAP

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入46汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-24 05:14

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

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