ZHCAG86 July   2026 AWR2944 , AWR2944P

 

  1.   1
  2.   摘要
  3.   商标
  4. 1AWR294x及安全模块介绍
  5. 2AWR294x 安全诊断库详解
    1. 2.1  DPL 数据移植层
    2. 2.2  CCM 内核比较模块
    3. 2.3  DCC 双时钟比较器
    4. 2.4  ECC 错误校正码
    5. 2.5  ECC 总线安全
    6. 2.6  HWA 硬件加速器安全
    7. 2.7  MCRC 循环冗余校验
    8. 2.8  Parity 奇偶校验
    9. 2.9  PBIST 可编程内置自测
    10. 2.10 Reset 复位管理
    11. 2.11 ROM校验和
    12. 2.12 RTI 实时窗口看门狗
    13. 2.13 STC 自测控制器
  6. 3总结
  7. 4名词表
  8. 5参考文献

ECC 错误校正码

ECC 模块通过 ECC Aggregator(ECC 聚合器)和 ECC Wrapper(ECC 包装器)为片内存储器提供单错误校正(SEC)和双错误检测(DED)。参考文献[1]说明 ECC Aggregator 通过串行接口与各存储器的 ECC Wrapper 通信,Wrapper 负责实际的 ECC 检测与校正。AWR2944 芯片中包含 5 个 ECC Aggregator:

  • MSS_ECC_AGG_R5A(R5F 核心 A 的 Cache/TCM/VIM)
  • MSS_ECC_AGG_R5B(R5F 核心 B 的 Cache/TCM/VIM)
  • MSS_ECC_AGG_MSS(L2/MBOX/RETRAM/GPADC/TPTC)
  • DSS_ECC_AGG(L3/MBOX/TPTC)
  • HSM_ECC_AGGR (HWA)

每个 Aggregator 管理多个 RAM ID,每个 ID 对应一个受 ECC 保护的存储器模块。

ECC Aggregator 的核心特性:

  • 通过 ECC 减少存储器软错误(SEC 可校正,DED 可检测不可校正)
  • 支持串行FIFO接口上的奇偶校验
  • 控制位具有冗余保护,单比特翻转可触发中断
  • 支持 Inject Only 模式,用于诊断测试
  • 提供软件可读的 SEC/DED 错误状态,包含行地址和翻转比特位信息

ECC 测试覆盖 11 个存储器区域(r5_atcm0、r5_btcm、mss_l2、mss_tptc、mcan、dss_ecc_hwa、 dss_l3_ecc、dss_mailbox、dss_tptc、dsp_edc、dss_l2_edc)。

通用测试流程:

  1. R5F 核心执行 SDL_EXCEPTION_init 注册异常处理函数。
  2. SDL_ECC_initMemory 初始化目标 RAM 的 ECC 保护。
  3. 初始化 ESM 并配置高低优先级中断。
  4. SDL_ECC_init 初始化 ECC 聚合器(指定 RAM ID 列表)。
  5. SDL_ECC_injectError 注入单/双比特错误,等待 ESM 中断。
  6. 在 ESM 回调中调用 SDL_ECC_getESMErrorInfo 和 SDL_ECC_getErrorInfo 获取错误详情,然后清除中断。
表 2-7 ECC模块函数说明
关键函数 功能
SDL_ECC_init 初始化 ECC 聚合器,配置 RAM 子类型列表
SDL_ECC_initMemory 初始化指定 RAM 的 ECC 保护
SDL_ECC_injectError 向指定存储器注入 SEC/DED 错误
SDL_ECC_getESMErrorInfo 从 ESM 中断源解析 ECC 错误类型
SDL_ECC_getErrorInfo 获取详细 ECC 信息(地址、翻转比特等)
SDL_ECC_clearNIntrPending 清除中断挂起
SDL_ECC_ackIntr 应答 ECC 中断
警告: R5F 上需先初始化异常处理器(SDL_EXCEPTION_init),否则 DED 可能无法正确上报。