完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
公司要求增加USB在线升级的功能。起初都很顺利,USB连接,程序下载都没有问题。最后的最后却出现了一个令人抓狂的问题:单独用KEIL下载IAP和APP都可以正常工作。拔掉调试线。反复上电,不管是进入IAP(按键进入)和APP,都正常。但是用DfuSe demo这个工具下载就无法正常进入APP。调试看,情况是在跳转APP-MAIN的时候取到了一个错误的地址。程序跑到FLASH异常中断的while(1)里去了。
实在没办法,我不使用自己的APP。试着调试KEIL提供的例子,情况一样。 程序的模板我用的是KEIL里自带的ST文件夹下的升级例子。查了很多网上的资料,也都是按照这个例子为模板修改的。 我改动了以下内容: 1.进入IAP按键的IO口,改成了我自己的。 2.USB D+上拉引脚,改成了我自己的。 3.IAP和APP工程的芯片型号 从 STM32f103ZE 改成了 stm32f103RB. 4. 因为容量不一样 改了一下ROM区。IAP-0x8000000 SIZE 0x3000 APP-0x8003000 SIZE 0x1D00。 5.APP里的中断向量首地址,原本例子就是写好的,偏移IAP的SIZE。 (APP也是例子里提供的,很简单 就是让一个LED闪烁) 然后就是正常的进入连接USB->转文件格式->下载并更新。不知道我这个改法哪里出了问题,或者是有什么需要注意的地方我没有注意到,一直是上面所说的问题。但是,我用KEIL单独下载都是正常的啊。求各位大神不吝赐教。 因为小公司就我一个做设计的,公司也不给配网络,这不是我工作的电脑,所以没办法上图。本来应该上图的,实在抱歉。如果有人遇到过类似的问题或者知道问题的原因,请留言,我用U盘COPY切图过来。 希望大家帮帮忙,老板的眼神已经很怪异了。 |
|
相关推荐
22个回答
|
|
|
我只是路过打酱油的,嘿嘿
|
|
|
|
|
|
本帖最后由 任风吹吹 于 2016-10-14 23:53 编辑
看一下你的SystemInit()函数内是否已经将SCB->VTOR寄存器值修改为0x0800 3000? |
|
|
|
|
|
:(:(:(:(:(
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2810 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2420 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2288 浏览 0 评论
2404 浏览 1 评论
1643 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 06:46 , Processed in 0.715956 second(s), Total 45, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
389