查看: 30204|回复: 5

[已解决] KEIL 用JLINK调试运行错误:couldn't stop cortex-m device【已解决】

[复制链接]

该用户从未签到

25

主题

104

帖子

0

中级会员

Rank: 3Rank: 3

积分
302
最后登录
1970-1-1
发表于 2013-6-30 22:35:48 | 显示全部楼层 |阅读模式
K60,flash上运行代码
单步调试到某一句时就会弹出题中错误,还有一句:please check jtag cable
之前是在K60时钟初始化的设置分频系数函数set_sys_divider()函数中禁止FLASH预期句子是跳出此错误,我已经将这个函数放在SRAM里了,MAP文件里面可以看到位于地址0x20000001处,即SRAM,也就是不应该是e2448的问题啊;后来检查发现还没有关狗;
于是关狗,在系统初始初始化时加入以下:
SCB_VTOR = (uint32)__Vectors; /* Set the interrupt vector table position */
 WDOG_UNLOCK = 0xC520;
        WDOG_UNLOCK = 0xD928;     
          WDOG_STCTRLH = 0xD2;
结果下载程序成功,执行到WDOG_UNLOCK = 0xD928;     这一句的时候又再次出现题中错误;
然后又有网上说调低JLINK速度,但是我发现我设置MAX CLOCK 不管多少,build窗口显示都是jlink speed 200KHZ似乎没有改过来,不解...
应该不是硬件问题,因为之前都是用的这一套硬件,刚从CW平台换到KEIL,CW上没有问题。
求指教!
我知道答案 目前已有4人回答
回复

使用道具 举报

该用户从未签到

10

主题

459

帖子

0

中级会员

Rank: 3Rank: 3

积分
303
最后登录
2024-10-24
发表于 2013-7-1 15:00:23 | 显示全部楼层

回复:KEIL 用JLINK调试运行错误:couldn't stop cortex-m device

你应该不是在单步调试以下两句话吧?WDOG_UNLOCK = 0xC520;WDOG_UNLOCK = 0xD928; 刚才我在CW简单验证了一下,单步调试引起的问题最多也就是复位,但不至于无法出现错误,Goole了一下这个问题,发现很多都是硬件的原因,譬如Jlink引脚链接等的,所以建议你谷歌一下按他们的方法尝试一下。例如这个帖子http://www.amobbs.com/thread-4628110-1-1.html
 
回复 支持 反对

使用道具 举报

该用户从未签到

25

主题

104

帖子

0

中级会员

Rank: 3Rank: 3

积分
302
最后登录
1970-1-1
 楼主| 发表于 2013-7-1 16:41:39 | 显示全部楼层

回复:KEIL 用JLINK调试运行错误:couldn't stop cortex-m device

是单步调试的。谢谢你的建议,我再看看吧!
回复第 2 楼 于2013-07-01 15:00:23发表:
你应该不是在单步调试以下两句话吧?WDOG_UNLOCK = 0xC520;WDOG_UNLOCK = 0xD928; 刚才我在CW简单验证了一下,单步调试引起的问题最多也就是复位,但不至于无法出现错误,Goole了一下这个问题,发现很多都是硬件的原因,譬如Jlink引脚链接等的,所以建议你谷歌一下按他们的方法尝试一下。例如这个帖子http://www.amobbs.com/thread-4628110-1-1.html
 
 
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

459

帖子

0

中级会员

Rank: 3Rank: 3

积分
303
最后登录
2024-10-24
发表于 2013-7-2 10:05:04 | 显示全部楼层

回复:KEIL 用JLINK调试运行错误:couldn

回复第 3 楼 于2013-07-01 16:41:39发表:
是单步调试的。谢谢你的建议,我再看看吧!
回复第 2 楼 于2013-07-01 15:00:23发表:
你应该不是在单步调试以下两句话吧?WDOG_UNLOCK = 0xC520;WDOG_UNLOCK = 0xD928; 刚才我在CW简单验证了一下,单步调试引起的问题最多也就是复位,但不至于无法出现错误,Goole了一下这个问题,发现很多都是硬件的原因,譬如Jlink引脚链接等的,所以建议你谷歌一下按他们的方法尝试一下。例如这个帖子http://www.amobbs.com/thread-4628110-1-1.html
 
 那应该就会出问题了,因为看门狗的解锁是有时序要求的,解锁的那两个语句必须在20个时钟周期内完成,如果进行单步调试,可能会引起CPU复位。

 
回复 支持 反对

使用道具 举报

该用户从未签到

25

主题

104

帖子

0

中级会员

Rank: 3Rank: 3

积分
302
最后登录
1970-1-1
 楼主| 发表于 2013-7-2 14:46:35 | 显示全部楼层

回复:KEIL 用JLINK调试运行错误:couldn't stop cortex-m device

哦哦,这样啊,我应该跳过去看看的,可是现在不知道动了哪里程序根本调试不了,一直在反汇编窗口有新动态马上回复哈
回复第 4 楼 于2013-07-02 10:05:04发表:
 那应该就会出问题了,因为看门狗的解锁是有时序要求的,解锁的那两个语句必须在20个时钟周期内完成,如果进行单步调试,可能会引起CPU复位。

 

 

 
回复 支持 反对

使用道具 举报

该用户从未签到

25

主题

104

帖子

0

中级会员

Rank: 3Rank: 3

积分
302
最后登录
1970-1-1
 楼主| 发表于 2013-7-3 21:33:06 | 显示全部楼层

回复:KEIL 用JLINK调试运行错误:couldn't stop cortex-m device

问题暂时解决。说下我的改动过程吧:中间又折腾了一次的是把debug选项中的load  application at startup前的勾给取消了,结果就一直debug不了,老是直接进入反汇编窗口,问题是取消的该选项目的是把编译生成的目标文件烧写到flash中去的,取消以后相当于board中没有源码所以进入不了C调试窗口,所以给看到的朋友们给提个醒,如果调试直接进入反汇编窗口,那一定是程序没有正确烧写。注意勾选上此选项还有output中的debug information也要勾上。
然后回到题中错误,因为已经确定了不是硬件问题,所以这个couldn't  stop cortex-m device 就是环境设置的问题了,一般都是复位引起的,我一是升级了keil版本二是如楼上建议的,关看门狗部分不能单步调试,然后就差不多OK了。
 
 
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-19 19:58 , Processed in 0.096424 second(s), 26 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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