JAJUA43C August   2020  – October 2025 TMS320F280033 , TMS320F280034 , TMS320F280034-Q1 , TMS320F280036-Q1 , TMS320F280036C-Q1 , TMS320F280037 , TMS320F280037-Q1 , TMS320F280037C , TMS320F280037C-Q1 , TMS320F280038-Q1 , TMS320F280038C-Q1 , TMS320F280039 , TMS320F280039-Q1 , TMS320F280039C , TMS320F280039C-Q1 , TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1 , TMS320F28P550SG , TMS320F28P550SJ , TMS320F28P559SG-Q1 , TMS320F28P559SJ-Q1

 

  1.   1
  2.   C2000 マイコンでのデバイス リセットなしのライブ ファームウェア アップデート
  3.   商標
  4. 1はじめに
  5. 2主なイノベーション
  6. 3LFU のビルディング ブロック
  7. 4提案されたソリューションの詳細
    1. 4.1 フラッシュ バンク構成
    2. 4.2 LFU の概念とパフォーマンスに影響を及ぼす要因
    3. 4.3 LFU 用ハードウェア サポート
      1. 4.3.1 複数のフラッシュ バンク
      2. 4.3.2 割り込みベクタ テーブル スワップ
      3. 4.3.3 RAM ブロック スワップ
      4. 4.3.4 ハードウェア レジスタ フラグ
    4. 4.4 LFU コンパイラのサポート
    5. 4.5 アプリケーションの LFU のフロー
  8. 5結果と結論
  9. 6実装例
  10. 7改訂履歴

割り込みベクタ テーブル スワップ

最適化の機会を評価するために切り替え時間の複数の要素を分析し、割り込みベクタ マップ エントリの更新が切り替え時間に影響を与える主要な要因の 1 つであることが判明しました。更新されるベクトルの数は、いくつかのテーブル全体 (192 のベクトル) に異なります。1 つのエントリの更新には約 5 サイクルかかることがあり、その結果、ベクタテーブルの更新には最大 960 サイクル (200MHz で 4.8us) を要する可能性があります。

切り替え時間を短縮するために、シャドウ ベクタ メモリと、それをアクティブ ベクタ メモリと交換する機能が実装されています。切り替えコードは、アプリケーションの実行中にシャドウ ベクタ メモリを更新できます。ベクタ メモリが更新されると、スワップは 1 クロック サイクルで完了します。どちらのメモリもピンポン方式で使用して、連続するソフトウェアのアップグレードが可能です。

図 4-2に、割り込みベクタ スワップの代表的な実装を示します。図 4-2(a) はスワップ前の構成、図 4-2(b) はスワップ後の構成です。ベクトル メモリ全体は 2 つのブロックに分かれています。つまり、ブロック A はアドレス 0x0000_0D00 から 0x0000_0EFF まで、ブロック B はアドレス 0x0100_0900 から 0x0100_0AFF までです。ブロック A はアクティブ ベクタ テーブルを保持し、ブロック B はシャドウ ベクタ テーブルを保持します。LFU の間、シャドウ メモリ エントリは切り替え前に更新され、切り替え中にスワップが実行されます。これにより、切り替え時間が最大 960 サイクルから 1 サイクルに短縮されます。

 割り込みベクタ スワップ図 4-2 割り込みベクタ スワップ