虽然Keil 经常被人吐槽 ,特别是界面还停留在上个世纪(其实 IAR 也差不多 ),但它调试功能应该没人喷吧,特别是针对 Cortex-M 内核单片机的调试功能。
Keil MDK 支持的调试功能有很多:组件查看器、事件记录器、事件统计、数据和事件跟踪、指令跟踪等。
有很多网友反应,Keil MDK 在调试的时候,会遇到各种问题,下面就简单讲述一下 Keil MDK 调试时,软件和硬件的一些要求。
1.逻辑分析仪
它要求目标硬件支持 SWO 或 ETM 跟踪。
SWO 跟踪或 ETM 跟踪需要在 µVision 调试设置中正确配置:
2.性能分析器
它要求目标硬件支持 ETM 跟踪。ETM 跟踪需要在 Keil 调试设置中正确配置。
要求:与 Keil 一起使用的调试器硬件需要支持流式 ETM 跟踪,例如 ULINKpro。
(有些第三方调试适配器硬件,如之前的 J-Trace Pro,不支持 Keil 中的 ETM 流跟踪,换句话说,不能与性能分析器一起使用)
3.代码覆盖率
它与“性能分析器”一样,调试器硬件需要支持流式 ETM 跟踪。“代码覆盖率”对话框提供有关已执行代码的统计信息。将此信息与反汇编窗口中的信息一起使用。
4.系统分析仪
系统分析器主要显示的某些调试信息,例如功耗、测量的内核时钟频率等。
如果要查看其他调试信息,例如 RTX5 事件、线程等,需要正确启用和设置事件记录器。同时,查看调试信息(比如异常),需要启用和设置 SWO 或 ETM 跟踪。
5.系统和线程查看器
系统和线程查看器仅支持基于 CMSIS RTOS v1 的旧版 Keil RTXv4.x(仅支持 Keil RTX 4.82 或更早版本)。
如果你使用 Keil RTXv4.x 的项目使用 ARM V6.x 编译器工具链编译的,需要遵循“系统和线程查看器”为空。
有关 Keil RTX 5 的类似信息,可以使用“组件查看器”。
6.组件查看器
与上面第 5 点对应,组件查看器仅支持 CMSIS RTOS v2,组件查看器窗口显示的静态信息,帮助分析软件组件的操作。所需的基础架构可以轻松添加到用户应用程序中,并且已经在 MDK-Middleware 和 Keil RTX5 中实现。
本文就先分享到这里,还有更多关于 Keil 调试的相关内容,后续为大家分享。
END
来源:StrongerHuang
推荐阅读
欢迎大家点赞留言,更多 Arm 技术文章动态请关注极术社区嵌入式客栈专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。