開発のヒント

周辺機能、I/O、メモリ

Cortex-M0 の割り込みベクタテーブルのリマップ

STM32F0 のコアはArm Cortex®-M0 プロセッサであるため、割り込みベクタを直接リマップすることができません。これを解決するにはユーザ・アプリケーションでIAP を使用する必要があります。

IAP を使用してFlash メモリにロードするユーザ・アプリケーションは、以下の設定でビルドする必要があります。

  1. ツールチェイン・リンカ・ファイルのプログラムロード・アドレスを0x0800 B000 に設定します。
  2. Flash(アプリケーションロードアドレス0x0800B000 のベースにマッピングされている)からSRAM のベースアドレス0x20000000 にベクタ・テーブルをコピーします。
  3. 「HAL_SYSCFG_REMAPMEMORY_SRAM() macro」を使用して、アドレス0x00000000 のSRAM をリマップします。
  4. 割り込みが発生すると、再配置されたベクトルテーブルから割り込みハンドラの開始アドレスをフェッチします。

この方法についてはアプリケーション・ノート(AN4854)の3.2章をご覧ください。

過去の開発のヒントはこちら