ZHCAEP5A November 2024 – October 2025 F29H850TU , F29H859TU-Q1
通过 F29x 的错误聚合器模块 (EAM) 和错误信令模块 (ESM) 捕获和记录来自 SSU 及其他外设的各种错误。有关如何查看 CCS 中 EAM 和 ESM 错误的更多信息,请参阅 F29x 错误处理和调试指南应用报告。
| 错误示例 | 说明 | 分辨率 |
|---|---|---|
|
C29xx_CPU1:闪存编程期间出错。地址 0x10D85000,FMSTAT(某些器件上为 STATCMD)0x00000000,值 0x00000101 C29xx_CPU1:文件管理器加载程序:内存写入失败:未知错误 C29xx_CPU1:GEL:File: C:\Users….. ssu_ex1_mode2.out:加载失败。 |
当未正确设置闪存设置来对 SECCFG 进行编程时,会看到以下错误。 | 要允许擦除 SECCFG 内存,请验证 Flash Settings 的 NonMain Erase Settings 部分中的“Allow NonMain Flash erase before loading data to Flash memory”复选框选中状况。之后,重新刷新程序 注: 验证在未用于 SECCFG 编程时未选择此设置 |
|
CPU1_DW 错误(HP 错误地址 = 0x60070018、LP 错误地址 = 0x00000000、PC = 0x10010646) 安全违规 |
以下错误表示,位于程序计数器 (PC) 地址 0x10010646 的指令尝试将数据写入地址 0x60070018,但由于没有足够的权限而无法写入。 |
要调试该问题,请在 CCS Disassembly 视图 (View -> Disassembly) 中查找 PC 地址。这示出了程序计数器的位置。这可以深入了解禁止写入访问的代码执行(即哪个函数以及该函数的哪一行)。在本例中,程序计数器位于 LINK4 中的“update_PSFB()”函数中。 接下来,在 CCS (View -> Memory) 中打开存储器浏览器并输入地址 0x60070018。这提供了指令将要写入的内存内容。在这种情况下,0x60070018 对应于 UARTA 寄存器。F29x DS 中的内存映射也可用于将提供的错误地址与设置的寄存器相关联。在这种情况下,用户可以在内存映射中查找 0x6007_0000。 因此,LINK4 需要被赋予对 UARTA 外围设备的 R/W 访问权限,以便“update_PSFB()”函数中的代码写入 UARTA 寄存器。 注:
有多种 CPU1 错误,例如 PR、DR1、DR2 等。有关这些单个错误类型的含义的更多详细信息,请参阅 TRM 或 F29x 错误处理和调试指南应用报告中的错误聚合器一章。 |
|
SSU 错误(HP 错误地址 = 0x3008000C、LP 错误地址 = 0x00000000、PC = 0x00000000) CPU1_SSU_MMR_ACCESS_ERROR |
该错误表明 SSU 不被允许访问 SSU 内存映射寄存器 (MMR) 之一。 | 要调试该问题,请首先在 CCS 内存浏览器中查找提供的地址 (View -> Memory)。地址 0x3008000C 对应于 LINK2_AP_OVERRIDE。CCS 中的“搜索”功能用于定位项目中调用“SSU_enableLink2APOverride()”的所有实例。在本例中,在 LINK2 之外使用了“SSU_enableLink2APOverride()”函数,导致了此错误。遇到其他 SSU MMR 访问错误时,请使用类似的方法。 |
| 在刷写期间-“警告:目标 CPU 可能滞留在持续故障状态” | 器件处于 SSUMODE2 状态并实现内存保护。 | 如果 SSU 不适合在启用功能安全和信息安全保护的情况下使用,则需要将 SSU 模式更改为 SSU 模式 1。为此,对 SECCFG 重新编程以将器件置于 SSUMODE1,并在 BANKMGMT 中对 BANKMODE0 重新编程。
|