robertesth 发表于 2025-6-21 08:19

在 Keil 中使用 J-Link attach 到正在运行的代码

一、设置验证变量 使用 SDK 例程 igpio_led_output,为了便于验证,定义全局变量 count,在 while(1) 中累加。https://edit.wpgdadawant.com/uploads/news_file/blog/2024/14654/tinymce/1.png
图 1 二、设置 Keil 选项① 取消勾选 Load Application at Startup,新建一个 .ini 文件,文件内容如下

LOAD %L INCREMENTALhttps://edit.wpgdadawant.com/uploads/news_file/blog/2024/14654/tinymce/2.jpg
图 2

② 不勾选 Updata Target before Debugginghttps://edit.wpgdadawant.com/uploads/news_file/blog/2024/14654/tinymce/3.png
图 3

③ 不勾选 Reset after Connect 和 Download to Flashhttps://edit.wpgdadawant.com/uploads/news_file/blog/2024/14654/tinymce/4.jpg

图 4


下载代码,使其开始运行,可以看到 PRINTF 输出的 count 变量在累加。 三、进入 debug设置好 Keil 上述选项后,点击进入 debug。https://edit.wpgdadawant.com/uploads/news_file/blog/2024/14654/tinymce/_5.png
图 5




xiaoqizi 发表于 2025-7-3 17:58

确保 J-Link 调试器正确连接到目标板

木木guainv 发表于 2025-7-3 20:17

选择 "J-Link / J-Trace Cortex" 作为调试器

Jiangxiaopi 发表于 2025-7-3 22:35

在 "Debug" 选项卡中勾选 "Attach to running target" 选项

荣陶陶 发表于 2025-7-4 08:45

程序暂停后无法继续,可以检查是否有中断被禁用

Zhiniaocun 发表于 2025-7-4 11:05

对于Flash中的代码,确保启用了Flash断点支持

Zuocidian 发表于 2025-7-4 13:22

变量显示不正确的话确保调试信息是最新的,同时可能需要手动指定 ELF 文件位置

Puchou 发表于 2025-7-4 15:41

对于 RTOS 系统,可以使用 System Viewer 插件查看任务状态

Xiashiqi 发表于 2025-7-4 17:59

附加到运行目标之后可以查看当前寄存器状态,暂停程序执行,查看变量和内存内容,设置断点等

小海师 发表于 2025-7-4 20:19

如果变量显示不正确,那么需要确保调试信息是最新的,同时可能需要手动指定 ELF 文件位置

脑洞星球居民 发表于 2025-7-4 21:01

看起来你已经成功设置了 Keil 以便能够 attach 到正在运行的代码,这是一个非常有用的技巧,尤其是在调试嵌入式系统时。你的方法很详细,对于新手来说是个很好的参考。

Haizangwang 发表于 2025-7-4 22:29

Attach 功能在某些特殊情况下可能受限,比如:芯片处于低功耗模式,调试接口被禁用,安全模式已启用
页: [1]
查看完整版本: 在 Keil 中使用 J-Link attach 到正在运行的代码