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

MCRC 循环冗余校验

MCRC(Memory Cyclic Redundancy Check)通过硬件加速的 CRC 计算验证存储器数据完整性。该模块使用最大长度 64 位多项式 f(x) = x⁶⁴ + x⁴ + x³ + x + 1 构建 PSA(Parallel Signature Analysis)寄存器,对 8/16/32/64 位数据宽度进行计算。

MCRC 支持两个独立通道,可并行对多个存储器区域进行 CRC 计算并支持三种模式:

自动模式:DMA 自动搬运数据做 CRC,无需 CPU 参与,匹配失败时产生中断,硬件提供 16 位扇区 ID 定位错误扇区。

半CPU 模式:DMA 仍负责数据搬运,但每个扇区压缩完成后触发中断,由 CPU 读取签名寄存器并手动比对预置值。

全CPU 模式:CPU 全程负责——既搬运数据到签名寄存器,又读取结果做比对。无中断、无 DMA,所有计数器关闭。

测试全 CPU 模式(mcrc_full_cpu):

表 2-10 MCRC全CPU模式流程
步骤 操作 说明
1 SDL_MCRC_init 初始化 MCRC 通道
2 SDL_MCRC_channelReset 复位 CRC 通道
3 SDL_MCRC_config 配置模式/模式大小/扇区数
4 Input raw data 写入已知数据模式
5 SDL_MCRC_computeSignCPUmode 计算 CRC 签名
6 Compare signature 与参考签名比较

半 CPU 模式(mcrc_semi_cpu):

表 2-11 MCRC半CPU模式流程
步骤 操作 说明
1 SDL_MCRC_init 初始化 MCRC 通道
2 SDL_MCRC_channelReset 复位 CRC 通道
3 SDL_MCRC_config 配置通道为 Semi-CPU 模式
4 EDMA operation 将数据搬入 PSA 寄存器
5 Waiting for interrupt MCRC 完成一个扇区压缩
6 读取 PSA Sector Signature 与参考签名比较

自动模式(mcrc_auto_cpu):

表 2-12 MCRC自动模式流程
步骤 操作 说明
1

SDL_MCRC_init

SDL_MCRC_channelReset

初始化 并复位MCRC 通道
2 SDL_MCRC_config 设置 SDL_MCRC_OPERATION_MODE_AUTO
3 EDMA transfer 同时搬运数据和预计算签名到 CRC Value Register
4 MCRC 自动比较 硬件完成签名比较
5 中断获取结果 CRC Fail 中断或完成通知

关键函数功能说明:

表 2-13 MCRC模块函数说明
关键函数 功能
SDL_MCRC_init 初始化 MCRC 通道(看门狗/块预载值)
SDL_MCRC_channelReset 复位 CRC 通道
SDL_MCRC_config 配置模式、模式大小、扇区数
SDL_MCRC_configCRCType 配置 CRC 多项式
SDL_MCRC_computeSignCPUmode 全 CPU 模式计算 CRC 签名
SDL_MCRC_getPSASigRegAddr 获取 PSA 签名寄存器地址
SDL_MCRC_getPSASectorSig 获取扇区签名值
SDL_MCRC_getPSASig 读取 PSA 签名值
SDL_MCRC_enableIntr 使能 MCRC 中断