検索
連載

マイコンのメモリマップの読み方Q&Aで学ぶマイコン講座(52)(3/4 ページ)

マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。52回目は、初心者の方からよく質問される「マイコンのメモリマップの読み方」についてです。

Share
Tweet
LINE
Hatena

STM32F4シリーズのメモリマップ

 次に、STM32F4シリーズの「STM32F429」を例に挙げて、実際のマイコンではCortex-M4のメモリマップがどのように扱われているかを見ていきましょう。図3(a)がCortex-M4のメモリマップ、図3(b)がSTM32F429のメモリマップです。


図3: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)には、さらに内部バスが扱うアドレス空間も記載されています。マニュアルのブロック図などで、各バスの接続ルートをチェックすると、内部構造の理解が深まります。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る