JAJAA48 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参考資料

シーケンス テスト

次の関数は、MMA エラー注入テストのシーケンスがあることを検証します。次のコードは、エンド実装がユーザーによって完全に依存しているサンプルです。

volatile unit8_t track_exception = 0;
void test_fun(void)
{
    switch(track_exception)   /*track exception is a global variable ,        initialized to zero*/
    {
        case 0:
            clear_mma(); /*this cleares the previous mma error code, definition is given above*/
            track_exception = track_exception+1;//increment track //exception 
            overflow_exception();//generate exception
            break;
        case 1:
            clear_mma();
            track_exception = track_exception+1;
            appLogPrintf("Under flow exception\n"); /*Only for debug, remove*/
            underflow_exception(); // generate exception
            break;
        case 2:
            clear_mma();
            track_exception = track_exception+1;
            appLogPrintf("offset parity exception\n"); /*only for debug remove*/
            offset_parity_test();//generate excpetion
            break;
        case 3:
            clear_mma(); 
            appLogPrintf("config parity exception\n"); /*Only for debug*/
            track_exception = track_exception+1;
            config_parity_test();
            break;
        case 4:
            clear_mma();
            track_exception = track_exception+1;
            appLogPrintf("offset parity exception\n");/*Only for debug*/
            offset_parity_test();
            break;
        case 5: 
            appLogPrintf("Signal ESM\n");
            appLogPrintf("Waiting for ESM event\n");
            while(1) /*it needs to wait, if not the program doesnt go , and it would generate multiple exceptions*/
            {

            }
            break;
        default:
    //Handle any unlikely scenario
        break;
}
    return;
}