マイコンのメモリマップの読み方:Q&Aで学ぶマイコン講座(52)(3/4 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。52回目は、初心者の方からよく質問される「マイコンのメモリマップの読み方」についてです。
STM32F4シリーズのメモリマップ
次に、STM32F4シリーズの「STM32F429」を例に挙げて、実際のマイコンではCortex-M4のメモリマップがどのように扱われているかを見ていきましょう。図3(a)がCortex-M4のメモリマップ、図3(b)がSTM32F429のメモリマップです。
アドレスの大きい方から順番に見ていきます。
- ベンダー固有&プライベート周辺バス
前述したように、ここはCortex-M4特有のエリアであるため、STM32F429では特記はなく、「Cortex-M4 Internal Peripheral」として記述されています。このエリアの詳細についてはSTM32F429のマニュアルではなく、Cortex-M4やCoreSight*3)のマニュアルを参照する必要があります。
- 外部デバイス
STM32F429は外部デバイスにアクセスするための機能(FMC:Flexible Memory Controller)を持っています。このエリアはFMCのBlock5とBlock6のアドレス空間に割り当てられています。詳細はマニュアルのFMCの章に記載されています。
- 外部RAM
このエリアは、FMCで外部メモリにアクセスするために割り当てられています。FMCのBlock3とBlock4のアドレス空間に割り当てられています。こちらも、詳細はマニュアルのFMCの章に記載されています。外部デバイスと外部RAMでは、FMCから出力される制御信号のタイミングが異なります。例えば、外部に市販のSRAMをつなぐ場合、外部RAMを使用しなければ一般的なSRAMのアクセス信号とタイミングが合わなくなってしまいます。
- 周辺モジュール用レジスタエリア
マイコンに搭載されている通常の周辺モジュール用です。例えばSPI(Serial Peripheral Interface) 、USB(Universal Serial Bus)、UART (Universal Asynchronous Receiver Transmitter)、タイマーやRTC(Real-Time Clock)などの周辺機能のレジスタが、このエリアに割り当てられています。割り当てアドレスはマニュアルまたはデータシートに記載されています。
- 内蔵SRAM
内蔵RAMエリアが割り当てられています。スタックエリアもここに含まれます。
- コード
ユーザープログラムの書き込みエリアですが、その他にも例外処理のベクターテーブル、ハードウェアのオプションを設定するオプションバイト、ブート用のプログラムがここに割り当てられています。割り当てアドレスは図中に記載されていますが、各機能の詳細はマニュアルまたはデータシートを参照する必要があります。
図3(b)には、さらに内部バスが扱うアドレス空間も記載されています。マニュアルのブロック図などで、各バスの接続ルートをチェックすると、内部構造の理解が深まります。
*3)参考ページ(再掲):https://developer.arm.com/architectures/cpu-architecture/debug-visibility-and-trace/coresight-architecture
Copyright © ITmedia, Inc. All Rights Reserved.