trace32 - 运行 Lauterbach CMM 脚本时调试端口问题
问题描述
目前我正在开发劳特巴赫 CMM 脚本来自动化 SPC58NG84 的测试用例作为测试用例的一部分: - 需要在测试用例之前和之后重置目标系统。- 需要从 C 代码中读取和写入变量值。
当我运行测试脚本时,出现错误“调试端口问题”,并且在“观察窗口”中所有变量值都显示 BUS ERROR。
你能告诉我如何调试这个问题吗?
导致“调试端口问题”的原因是什么?
winodw 区域中的错误消息:CO:2 错误:CPU 突然离开调试模式 (OSR=0x3C1) CO:0 JTAGID=0x11110041 警告:CO:1 内核当前处于重置状态。在激活时停止核心。
CMM 脚本: 测试前提条件:重置目标
Break.Delete
WAIT 100.ms
SYStem.Mode Down
SYStem.DETECT.CPU
SYStem.Mode Up
B:: Go
WAIT 500.ms
测试用例执行: --在软件中读写变量-----
测试岗位条件:重置目标
Break
Break.Delete
WAIT 100.ms
SYStem.Mode Down
SYStem.Mode Up
B:: Go
WAIT 1000.ms
解决方案
Break 命令后出现的错误“调试端口问题”通常意味着目标应用程序严重崩溃,以至于内核不再响应调试器的停止命令。
为了调试问题,请确保您的引导加载程序尽早设置中断向量起始地址 (IVPR),并将分支到自身指令放到所有中断处理程序地址,除非中断处理程序代码已经存在。
完成此操作后,将程序预定义点设置为通常涉及崩溃的中断处理程序:机器检查、数据存储、指令存储、程序中断。这样做应该会在崩溃发生时捕获内核,并且 SRR0(CSRR 或 MCSRR,取决于中断类型)将显示问题发生在哪个地址。
推荐阅读
- flutter - 我想通过使用颤振的文本字段将行值添加到数据表中
- php - 无需注册的 Laravel 电子邮件验证
- android - 如何在android自定义搜索栏中设置工具提示文本?
- laravel-5 - 刀片模板中的 Shopify Assets API 意外常量
- go - 如何设置界面的字段?
- .net-core - 如何从 dotnet core 中的发布中排除语言 dll
- google-api - 我如何知道 gmail-api 的版本是否更改?
- flutter - 在虚拟化 OSX 上将 Flutter 应用程序运行到 iOS 虚拟设备中
- php - 检查最终金额是否允许接受 PHP 中可用的国家/地区面额
- azure-data-explorer - 将具有不同字段的不同 csv 提取到 ADX 表中