ZHCAFU0 October   2025 TDA4VM

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
  5. 2指令
    1. 2.1 范围
    2. 2.2 HWA 指令定义
    3. 2.3 故障注入程序
      1. 2.3.1 方框图
      2. 2.3.2 故障注入:步骤
        1. 2.3.2.1 下溢错误
        2. 2.3.2.2 溢出错误
        3. 2.3.2.3 偏移奇偶校验错误
        4. 2.3.2.4 配置奇偶校验错误
          1. 2.3.2.4.1 FSM 配置奇偶校验错误
          2. 2.3.2.4.2 B FSM 配置奇偶校验错误
          3. 2.3.2.4.3 C FSM 配置奇偶校验错误
          4. 2.3.2.4.4 X FSM 配置奇偶校验错误
        5. 2.3.2.5 C 读取错误
        6. 2.3.2.6 C 写入错误
  6. 3流程图
    1. 3.1 代码更改
      1. 3.1.1 返回挂钩定义
      2. 3.1.2 清除 MMA 函数
      3. 3.1.3 序列测试
  7. 4总结
  8. 5参考资料

溢出错误

当尝试读取传输缓冲器时,会引起溢出错误,但早期的 HWA 指令会导致 FIFO 溢出(编程错误)。依照列出的步骤注入错误。
  1. HWAOPEN 指令用于写入 HWA_CONFIG 及 HWA_OFFSET。
  2. 执行 HWAXFER 以将 HWA_STATUS 的内容传输至内部缓冲器。
  3. 重复步骤 2,直到缓冲器溢出。
  4. 执行 HWARCV 指令以观察错误。
void overflow_exception(void)
{
  __HWA_CONFIG_REG_v1 mma_config_reg;
  mma_config_reg = __gen_HWA_CONFIG_REG_v1();
  __HWA_OFFSET_REG offset_reg;
  offset_reg = __gen_HWA_OFFSET_REG();
  __HWAOPEN(mma_config_reg,offset_reg,__MMA_OPEN_FSM_RESET);
  int loop_begin = 1;
  int loop_end  = 30;
  for(;loop_begin<=loop_end;loop_begin++)
  {
    __HWAXFER(__MMA_XFER_SRC_HWA_STATUS);
    __HWAADV();
    __HWAADV();
    __HWAADV();
    __HWAADV();
  }
  __HWARCV(0);
}