マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。52回目は、初心者の方からよく質問される「マイコンのメモリマップの読み方」についてです。
素朴な疑問から技術トラブルなどマイコンユーザーのあらゆる悩みに対し、マイコンメーカーのエンジニアが回答していく連載「Q&Aで学ぶマイコン講座」。
今回は、初心者から多く寄せられる質問です。
マイコンのマニュアルをみると、必ず「メモリマップ」の図が記載されています。概要は分かるのですが、詳細になると分からない点がいろいろあるので、「メモリマップ」の読み方を教えてください。
メモリマップは、マイコンの持っているメモリの位置情報(プログラムエリアやデータエリアなどの割り当て)を、アドレスを縦軸にして帯状に記述した図です。割り当て内容は各マイコンによって異なります。
実例として、STマイクロエレクトロニクスのマイコン「STM32F4シリーズ」*1)(以下、STM32F4)と「STM8Sシリーズ」*2)(以下、STM8S)のメモリマップを図1に示します。
製品ごとにマニュアル上での表記は異なりますが、機能的に分類すると共通項目は以下のようにいくつかあります。
STM32F4は外部メモリや外部デバイスをつなげることができるため、外部RAMと外部デバイス用のエリアを持っています。また、コアであるArm Cortex-M4プロセッサ(以下、Cortex-M4)用のエリア(プライベート周辺バスなど)も定義されています。プライベート周辺バスなどは、STM8Sの場合「CPU/デバッグ/割り込み用レジスタエリア」に相当します。
マイコンの持つ機能でメモリマップに現れている違いは、EEPROM(Electrically Erasable and Programmable ROM)エリアです。STM8SにはEEPROMが内蔵されているので、EEPROM用にエリアが割り当てられています。また、STM8の「ブートベクター、ブートROM」は、STM32F4ではコードエリアに含まれています。このような細かい点については、各製品のマニュアルを参照する必要があります。
*1)参考ページ:https://www.stmcu.jp/stm32/stm32f4/
*2)参考ページ:https://www.stmcu.jp/stm8/stm8s/
Copyright © ITmedia, Inc. All Rights Reserved.