ZHCAEP5A November   2024  – October 2025 F29H850TU , F29H859TU-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 简介
  5. 补充性在线信息
  6. SSU 概述
  7. 关键概念定义
  8. 功能安全和信息安全目标
  9. 系统设计
  10. 配置 SSU
    1. 7.1 闪存 SECCFG 区域
    2. 7.2 SSU 开发生命周期
    3. 7.3 使用 SysConfig 工具
      1. 7.3.1 启用系统安全配置
      2. 7.3.2 配置应用模块
      3. 7.3.3 配置特殊模块
        1. 7.3.3.1 LINK2 配置
        2. 7.3.3.2 LINK1 配置
        3. 7.3.3.3 通用代码链接配置
      4. 7.3.4 定义沙盒
      5. 7.3.5 添加共享内存
  11. 调试授权
    1. 8.1 基于密码的解锁
  12. 调试 SSU
    1. 9.1 调试构建错误
    2. 9.2 调试运行时错误
  13. 10SSU 常见问题解答 (FAQ)
  14. 11总结
  15. 12参考资料
  16. 13修订历史记录

调试运行时错误

通过 F29x 的错误聚合器模块 (EAM) 和错误信令模块 (ESM) 捕获和记录来自 SSU 及其他外设的各种错误。有关如何查看 CCS 中 EAM 和 ESM 错误的更多信息,请参阅 F29x 错误处理和调试指南应用报告。

表 9-2 可能的 SSU 运行时错误
错误示例 说明 分辨率

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 重新编程。
  • 将默认的 seccfg 程序加载至找到的器件。默认的 seccfg 程序位于以下路径: C:\ti\<f29h85x-sdk_version_x>\source\defseccfgbin
  • 在 EVM 或 HW 上提供复位
  • 连接到目标并且验证 SSUGENREGS 寄存器中的 SSUMODE = 0x30。
  • 在 Flash Settings 中,将 FLASH BANKMODE 编程为 BANKMODE 0,或验证是否设置了所需的 BANKMODE。
  • 如果组模式发生更改,请断开与 CCS 中目标的连接,并在 EVM(controlSOM 具有 XRSN 按钮)上发出 XRSN。
  • 连接到目标并验证 SSUGENREGS 中的 BANKMODE = 0x3 或正确设置了所需的 BANKMODE。