RAMで命令を実行する方法:Q&Aで学ぶマイコン講座(34)(3/3 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「RAMで命令を実行する方法」です。
フラッシュメモリからプログラムをRAMに転送して実行する方法
RAMで実行したいプログラムコードをいったんフラッシュメモリに書き込みます。最初はフラッシュメモリでプログラムを実行し、そのコードをRAMに移し終わったらRAMへジャンプして、それ以降はRAMでプログラムを実行する方法があります(図3参照)。
この方法はマイコンやIDEの仕様に制限されません。RAM上でプログラムが実行できるマイコンであれば、ほとんどの場合に適用できます。
また、プログラムコードはユーザーが自由に作れますので、ハードウェアで設定する方法に比べ、ユーザーにとってかなり自由度の高い方法です。
RAMで命令実行するメリット、デメリット
RAM実行の際のメリット、デメリットをリストアップします。
メリット
1)ゼロウェイト実行が可能
RAMはフラッシュメモリと違って、アナログ要素が少なく(アナログ部はデータのセンスアンプなどのみ)、ほとんどが論理回路で構成されているので、読み出しは1サイクルで可能です。したがって、ゼロウェイトでプログラム実行ができます。
2)フラッシュメモリよりもRAMの方が消費電流が少ない
フラッシュメモリは、内部に専用の電源を持っており、動作中の消費電流はRAMよりも大きくなります。マイコンによっては、低消費電力モードや、RAMでプログラム実行する間はフラッシュメモリの機能を停止させ、消費電流を少なくできる機能が付いているものもあります。その機能を利用してRAMでプログラム実行すると、フラッシュメモリ分の消費電流を低減することができます。
デメリット
1)メモリ容量が小さく、実行可能なプログラム容量に制限
最近では大容量のRAMを搭載したマイコンもありますが、それでもフラッシュメモリの容量に比較するとRAMの容量は小さいので、実行できるプログラムサイズが制限されます。
2)ベクタテーブルもRAM上に移動しないと、割り込み処理ができないケース
通常、割り込みベクタはフラッシュメモリ上に配置されています。メリットの2)でフラッシュメモリの機能を止めて、RAMだけでプログラムを実行する場合、もし割り込みが入った時に、割り込みベクタを読み出せなくなります。したがって、割り込みベクタもRAM上に移す機能がないと、割り込み処理ができません。マイコンによっては、プログラムはRAM上で実行できても、割り込みベクタが移せないものがありますので、マニュアルで仕様の確認が必要です。
3)電源オフでRAMはクリア
フラッシュメモリと違って、RAMは電源を切った時点で、内部データが全て消えますので、再度電源を投入した際は、またプログラムを書き込む必要があります。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- マイコン周辺部品の選び方――電源編
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「マイコン周辺部品の選び方――電源編」です。 - マイコンに接続する推奨デカップリングコンデンサと接続方法を教えて!
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。3回目は、初心者の方からよく質問される「マイコンの電源に接続するデカップリングコンデンサの推奨タイプと接続方法」についてです。 - マイコンとEEPROMを接続する方法を教えて
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。11回目は、上級者の方からよく質問される「マイコンとEEPROMを接続する方法」についてです。 - 未使用GPIO(汎用I/O)の処理はどうすれば良いの?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。5回目は、初心者の方からよく質問される「未使用GPIO(汎用I/O)の処理はどうすれば良いの?」についてです。 - ラッチアップって何?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。4回目は、「ラッチアップ」に関する質問です。ラッチアップの仕組みと対策もご紹介します。 - CISCとRISC、何が違う?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。記念すべき1回目は、マイコン初心者の方からよく質問される「CISCとRISCの違い」についてです。