作者 | strongerHuang
Keil MDK的界面虽然不那么友好(IAR其实也好不到哪里去),但Keil的调试功能算是好过很多集成开发环境,特别是针对Cortex-M内核的处理器。
Keil MDK支持的调试功能有很多:组件查看器、事件记录器、事件统计、数据和事件跟踪、指令跟踪等。
从过去技术交流群的消息来看,还有很多小伙伴居然不会用Keil的调试功能。当然,新手使用调试功能时多少会遇到一些问题,下面就简单讲述一下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)加入技术交流群,请备注研究方向。