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参考文献

CCM 内核比较模块

CCM(Core Compare Module)实现 CPU 锁步(Lockstep)机制。AWR2944 中两个 R5F 核可配置为锁步模式,CCM 在每个时钟周期比对两个内核的输出(指令、地址、数据),当检测到不一致时判定 CPU 发生了硬件故障。CCM 支持两类监测:

  • 输出比较块监测(SDL_CCM_MONITOR_TYPE_OUTPUT_COMPARE_BLOCK),比对主核和从核的指令级执行输出;
  • VIM 比较监测(SDL_CCM_MONITOR_TYPE_VIM),Lockstep(锁步)模式让 CPU1 作为 CPU0 的诊断镜像,两者执行相同的中断处理。中断信号同时送入 CPU0 和经过延迟电路的 CPU1,各自的输出通过专用总线送到 CCMR5 模块比较。CPU0 的输出也被延迟以对齐时序。CCMR5 比对两路信号,若不一致则产生 MSS_CCMR5_ERR 错误中断,从而检测 CPU 核的硬件故障,错误通过 ESM 模块上报。

参考文献[1]中描述了该模块的底层机制:锁步比较器持续监视 CPU 的指令和数据总线,一旦发现偏差立即触发 ESM 安全响应。

CCM功能测试(sdl_ccm_example)包含三个子项:

  1. 正常自检:SDL_CCM_selfTest() 验证输出比较块基本功能。
  2. 错误强制自检:以 SDL_CCM_SELFTEST_TYPE_ERROR_FORCING 模式调用 SDL_CCM_selfTest(),强制注入错误验证检测路径。
  3. 错误注入:SDL_CCM_injectError() 注入比较错误,验证 ESM 中断响应和清除流程。

VIM 测试(sdl_ccm_vim)针对 VIM 路径比较错误,流程类似。

表 2-2 CCM模块函数说明
关键函数 功能
SDL_CCM_init 初始化 CCM 模块
SDL_CCM_verifyConfig 验证 CCM 配置
SDL_CCM_selfTest 执行自检(正常/错误强制两种模式)
SDL_CCM_injectError 注入 CCM 错误
SDL_CCM_getErrorType 获取错误类型
SDL_CCM_clearError 清除 CCM 错误