发新帖本帖赏金 10.00元(功能说明)我要提问
返回列表
[开发工具]

MDK5在调试过程中遇到的问题以解决方式

[复制链接]
842|5
手机看帖
扫描二维码
随时随地手机跟帖
woai32lala|  楼主 | 2022-9-11 23:25 | 显示全部楼层 |阅读模式
本帖最后由 woai32lala 于 2022-9-12 16:55 编辑

#申请原创# #每日话题# #技术资源#[url=home.php?mod=space&uid=760190]@21小跑堂 [/url]
MDK5在调试过程中遇到的问题以解决方式
     在写嵌入式代码过程中,免不了用MDK5在线调试,今天用MDK5 的在线调试就出现了一个问题,解决了大半天,现在跟大家来分享一下MDK5
仿真过程中常出现的问题以及解决方式。
1、第一个问题现象
1.1 他的现象是,第一次烧录进去之后,运行的窗口直接编程灰色,点暂停程序不知道跑哪去了。
1.2 点击关掉调试后提示第二张图片
1.3 再次烧录程序时,提示Not a genuine ST Devic Abort connection1.4 然后提示Invalid ROM Table.
               195631df3e064172.png                                   33027631df4a18d03a.png                72202631df41977a65.png                 55590631df1f4d1476.png

出现这个的问题有两种解决方式
第一种
先断电,设置BOOT0上拉到VDD(3.3V),重新烧写代码,重新下拉BOOT0至GND,即可正常工作,如不能正常工作则进行第二种问题修改。

第二种
晶振设置错误,我今天犯得问题就是这个原因,板子上是25M的晶振,程序设置的是8M。导致程序跑飞了。
以STM32F407系列为例
打开system_stm32f4xx.c文件,找到HSE_VALUE
9327631df2a297f0c.png
HSE_VALUE的值从8000000 修改为25000000,这个值是你单片机使用的外部晶振的值。
等等,你以为这就结束了,还有一个值要修改,主频的计算公式/************************* PLL Parameters***************************/
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
//锁相环压腔振荡器时钟
//PLL_VCO =(HSE_VALUE/PLL_M)* PLL_N=8/ 8* 336 = 336MHz
#define PLL_M      8
#define PLL_N      336

/* SYSCLK = PLL_VCO / PLL_P */
// 系统时钟SYSCLK = PLL_VCO / PLL_P=336 / 2 = 168MHz


看到这里他还有一个PLL_M 值要修改
打开system_stm32f4xx.c文件,找到PLL_M
22168631df5755da51.png
第三种:现象是,烧录完成点击在线调试时,运行按钮也会自动变成灰色不可按,但可以停止和复位,暂停打断点没有具体位置
这种也是程序跑飞了,发现原因是只用J-link供电,可能供电电压不够导致的,给系统板外接电源之后,可以正常调试。

3、下载完程序后不能自动运行?

将PLL_M改为25即可。
两项都修改完毕后,重新按照第一种方式操作一遍就可以完美解决问题了(第一种方式,将BOOT连
接到3V3后,一定要断电,再上电,否则还是会提示Not a genuine ST Devic Abort connection)。
46916631df7676ca6f.png

2、第二个问题
在线调试完毕后,会弹出以下窗口,而且关不了,像卡死了一般,只能通过任务管理器强制关掉软件就很痛苦,只是一个软件bug,兼容性问题。
53199631df7c914849.png
解决方式
2.1、程序的目录可能有中文路径的原因,这个倒不是影响的关键,反正大家尽量避免。
2.2、在点击停止在线调试前,取消掉所有断点就可以解决。
3、下载程序后,程序不能自动运行?
首先点击魔术棒,然后点击debug,再点击Setting,找到FLash_Down,
看一下Reset and Run 有没有打钩,如果没有打上勾再下载一次程序看一下。
如果上述操作不能解决
点击pack,将Enable √ 去掉。

23349631dfb49964dc.png 80563631dfbbc22577.png 48283631dfc522c49f.png

4、点击下载提示error Flash Download failed
一开始我是以为误操作芯片锁死了,然后钟爱到了其他原因,往家芯片固件了。
点击魔术棒,然后setting,flash download
66504631dfd9b733ae.png
添加相应的固件就好了
43055631dfdba4c966.png
这样就可以解决了

以上就是对MDK5常出现的调试问题总结以及问题解决方式。

























使用特权

评论回复

打赏榜单

21小跑堂 打赏了 10.00 元 2022-09-19
理由:恭喜通过原创文章审核!请多多加油哦!

评论
21小跑堂 2022-9-19 15:36 回复TA
较为常见的KEIL调试问题,时间的打磨会让问题消失,但是新手极易出现的问题,并苦恼许久许久。 
gouguoccc| | 2022-9-11 23:30 | 显示全部楼层
学习了,谢谢分享经验。

使用特权

评论回复
LLGTR| | 2022-9-13 14:19 | 显示全部楼层
其实在Keil环境下玩久了,遇到BUG也容易找到问题所在了。

使用特权

评论回复
Henryko| | 2022-9-13 21:09 | 显示全部楼层
应该是keil bug多吧

使用特权

评论回复
flypoppy| | 2022-9-19 18:03 | 显示全部楼层
把电源关了,重启,多插拔重启几次就好了

使用特权

评论回复
发新帖 本帖赏金 10.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则