RH850 异常调试:上下文、硬件错误与写入追踪
大约 2 分钟
一次内存异常可能同时留下几种现象:CPU 进入保护异常,ECM 中断被请求,调试器停在写观察点,OS 又调用 ProtectionHook。它们分别说明了不同的事情。把这些现场连起来,需要知道寄存器由谁保存、栈空间归谁使用,以及每个地址上的数据后来怎样参与执行。
这个系列从同一次 RH850/U2A 调试记录出发,按三个层次展开。平台为 G4MH 内核、Vector MICROSAR OS 与 Green Hills MULTI 7.1.6;案例采用匿名任务和相对地址。官方架构语义、案例配置、现场记录与尚待验证的因果关系在文中分别说明。
| 顺序 | 文章 | 阅读重点 |
|---|---|---|
| 1 | RH850 OS 上下文切换与栈保护 | Config 与 Dyn、寄存器与栈帧、MPU 栈窗口、相邻任务栈的风险 |
| 2 | 从硬件错误源到 AUTOSAR 通知:ECM EIC9 | DCLS 中断路由、Master/Checker 状态、软件过滤、一致性检查与 W1C |
| 3 | 用 GHS Watchpoint、MAP/ELF 与汇编追踪写入链 | 保存现场、识别地址、计算 PREPARE 栈帧、追溯 r31 的来源 |
第三篇写到当前记录能够支撑的位置:相邻栈布局、越界的保存 SP 和函数序言写入共同构成了一条值得继续验证的路径。尚缺少同一次运行中“被改写的槽位 → 恢复 r31 → 非法转移”的完整记录,也没有修复后的回归结果,因此本系列不将它写成已完成的根因复盘。
调试器连接与下载可先读 Green Hills MULTI 调试 RH850/U2A;栈水位的测量方法见 Stack Painting 与 High-Water Mark。