メディア

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

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

» 2020年03月03日 11時00分 公開

過去の質問一覧はこちら

 素朴な疑問から技術トラブルなどマイコンユーザーのあらゆる悩みに対し、マイコンメーカーのエンジニアが回答していく連載「Q&Aで学ぶマイコン講座」。

 今回は、初心者から多く寄せられる質問です。

 マイコンのマニュアルをみると、必ず「メモリマップ」の図が記載されています。概要は分かるのですが、詳細になると分からない点がいろいろあるので、「メモリマップ」の読み方を教えてください。

 メモリマップは、マイコンの持っているメモリの位置情報(プログラムエリアやデータエリアなどの割り当て)を、アドレスを縦軸にして帯状に記述した図です。割り当て内容は各マイコンによって異なります。

 実例として、STマイクロエレクトロニクスのマイコン「STM32F4シリーズ」*1)(以下、STM32F4)と「STM8Sシリーズ」*2)(以下、STM8S)のメモリマップを図1に示します。

図1:マイコンのメモリマップ例 (クリックで拡大)

 製品ごとにマニュアル上での表記は異なりますが、機能的に分類すると共通項目は以下のようにいくつかあります。

  • コード:ユーザープログラムを書き込むエリア
  • 内蔵RAM:演算の途中経過などを一時的に格納するRAMのエリア(スタックも含む)
  • 周辺モジュール用レジスタエリア:マイコンに搭載されている周辺機能(タイマー、UART、A-Dコンバーターなど)のレジスタの割り当てエリア

 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/

       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.