OpenEdv-开源电子网

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

关于STM32的DFU的Keil下载求助!

[复制链接]

2

主题

4

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2016-2-20
在线时间
9 小时
发表于 2016-3-2 20:48:36 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 apple_8932 于 2016-3-2 20:51 编辑

大家好!

我最近在给部门做一款基于STM32F103的工具,上下位机都是我做的,采用了Usb-Mass Storage的协议。由于在此基础上扩展了一些指令,所以想把DFU和日常通讯的上位机均采用同一套通讯协议。

现在问题来了,我参考了DFU的官方例程,在另一个主APP程序里设置好了起始地址和向量表偏移。但我在调试Jump到APP的时候,把DFU部分的程序选择All Erase后用ULink2烧到STM中,之后把APP程序用Sector Erase烧进去。感觉跳转成功,但之后APP程序没法运行,不知道为什么。而且单步调试在进入APP主main区之后运行就不正常了。

我当时怀疑是程序的问题,但是我单独烧写两个程序均OK(APP程序此时没有设偏移)。而后用同样的方法,把ST官方的4.0库也采用先Keil烧IAP后烧它自己的APP,也不能成功运行。

请问,是否DFU只能是烧写完IAP程序后用DFU写入APP?还是说Keil有方法一次把两个项目同时烧进去??

最佳答案

查看完整内容[请看2#楼]

哦,请教了公司中的ARM大牛和网上的帖子,问题解决了。原来还是IAP跳转前要__set_FAULTMASK(1),APP开头要先__set_FAULTMASK(0)、RCC_Deint后再设置中断偏移量
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

4

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2016-2-20
在线时间
9 小时
 楼主| 发表于 2016-3-2 20:48:37 | 显示全部楼层
哦,请教了公司中的ARM大牛和网上的帖子,问题解决了。原来还是IAP跳转前要__set_FAULTMASK(1),APP开头要先__set_FAULTMASK(0)、RCC_Deint后再设置中断偏移量
回复

使用道具 举报

2

主题

4

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2016-2-20
在线时间
9 小时
 楼主| 发表于 2016-3-3 07:57:27 | 显示全部楼层
请问各位大神能解答下么?项目时间挺急的,谢谢了!
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2020-1-17 09:19:58 | 显示全部楼层

楼主能分享一下F407的  DFU代码吗?我也想了解一下
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-19 19:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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