我正在使用装有 Keil uVision 的 i.MXRT1180-EVK 板和 CMSIS-DAP ARMv8-M 调试器来调试 hello_world_cm33 多核项目。我可以逐步执行代码,但是当我设置断点并按下 “运行” 按钮时,命令窗口显示消息
“无法访问内存(@0x2800F3E0,读取,访问大小:2 字节)”,程序崩溃。请注意,我使用的是原始示例项目,在开始 hello_world_cm33 项目的调试过程之前,我版本了 hello_world_cm7 项目。i.MXRT1180-EVK 板设置为 BOOT_MODE [2:0]-100 FlexSPI 四通道SPI 串行 NOR。
在项目中使用断点需要做些什么?
嗨,@pat24、
您正在执行什么流程来导入示例并版本这些项目?您是否确保创建了多核工作区?您是否确保先构建辅助内核 (cm7),然后构建主内核 (cm33)?请在此处查看如何在 Keil 上运行多核应用程序的过程:使用 Keil MDK/μVision 运行演示 - MCUXpresso SDK 文档
虽然 RT1170 的流程与 RT1180 相同。
BR,
Edwin.
我使用 MCUXpresso 也没有问题,但我必须使用 Keil uVision,无法切换到 MCUXpresso。我使用带有代码包 NXT:: MIMXRT1189_DFP — 25.09.00-pvw2 的 Keil uVision Pack 安装程序(2025-08-12).在我看来,我们使用的是相同的设备专用代码包。我试用了 Segger Flasher Portable PLUS 调试器,它可以处理 hello_world_cm33 项目,但不能处理 hello_world_cm7。项目挂在 tasks.c 中在启动时。无法进行任何调试。
板载调试器 Segger
hello_world_cm33 没有断点可能工作
hello_world_cm7 的工作在启动时挂起在任务中
嗨,@pat24、
我从 MIMXRT1180-EVK SDK v25.09.00 中导入了多核 hello world 示例项目。你也在使用这个 SDK 版本吗?我运行了示例,并在 main.c 上设置了断点文件,并在断点处停止,没有任何错误信息。
不过,我是在 MCUXpresso 上做的。您能否尝试在 MCUXpresso 上执行此操作,以确保这不是硬件或示例项目的问题,而是集成开发环境设置的问题?
BR,
Edwin.
谢谢您的答复。我可以在 hello_world_cm7 项目中设置断点,但在 hello_world_cm33 项目中却不起作用,即使清除了所有闪存也是如此。我试过好几次了。您能重现我的调试问题吗?这是 Keil 的示例项目,我使用的是 i.MXRT1180-EVK 开发板。
嗨,@pat24、
尝试进行大规模擦除,删除项目上的 " debug " 文件夹,最后在重建和重新刷新你的板之前清理项目。如果你无法进行大规模擦除,请按照以下步骤操作:调试器连接问题的 RT 板恢复-恩智浦社区
BR,
Edwin.