連載
マイコンのメモリマップの読み方:Q&Aで学ぶマイコン講座(52)(2/4 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。52回目は、初心者の方からよく質問される「マイコンのメモリマップの読み方」についてです。
Cortex-M4のメモリマップ
はじめに、STM32F4のコアであるCortex-M4のメモリマップの詳細を示します(図2)。
各エリアについて、アドレスの大きい方から順番に簡単に説明します。
- ベンダー固有:従来システムと互換性をもつペリフェラルの実装を可能にするためのエリア
- プライベート周辺バス:システムコンポーネント用のエリア、Cortex-M4のデバッグを実行するCoreSight*3)や割り込み処理を行うNVIC(Nested Vectored Interrupt Controller:統合ネスト型ベクター割り込みコントローラー)*4)など、Cortex-M4特有のシステム用エリア
- 外部デバイス:外部デバイスまたは配列/ノンバッファが必要な外部メモリへの拡張用エリア
- 外部RAM:外付けメモリの拡張用エリア
- 周辺モジュール用レジスタエリア:マイコンに搭載されている通常の周辺モジュール用レジスタエリア
- 内蔵SRAM:マイコンの内蔵RAMエリア(スタックエリアも含む)、演算の途中経過などを一時的に格納
- コード: ユーザープログラムの書き込みエリア
Cortex-M4を搭載しているマイコンは、このような共通のメモリマップになります。しかし、共通となる基本的な構成に対して、各マイコンベンダー特有の機能を盛り込むため、若干扱いが変わります。
*3)参考ページ:https://developer.arm.com/architectures/cpu-architecture/debug-visibility-and-trace/coresight-architecture
*4)参考記事:Q&Aで学ぶマイコン講座(51):NMI(ノンマスカブル割り込み)って何?
Copyright © ITmedia, Inc. All Rights Reserved.