フラッシュローダーとは?:Q&Aで学ぶマイコン講座(33)(3/3 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「フラッシュローダーとは?」です。
ユーザーがフラッシュメモリ書き込みプログラムを作る場合
ブートローダーと同じ機能をユーザーが作ることもできます。通常のプログラムコードのほかに、ブートローダーと同じ機能のプログラムを作って、フラッシュメモリの別の場所に置いておきます。そして、あらかじめ決められた汎用IOのレベルで、どちらのプログラムを実行するかを決める判定用のプログラムを、初期ルーティンの中に入れておきます。例えば、汎用IOのレベルがHighならば、通常のプログラムを実行し、Lowであればブートローダーのプログラムが実行されるようにします。汎用IOのレベルをMOSFETで遠隔操作できるようにしておけば、ブートローダーと同じ機能が実現できます(図4)。
この場合、使用する通信機能はユーザーが決められるので、ブートローダーで決められている通信機能以外の通信が可能です。
ブートローダーと同じ機能と述べましたが、実際はフラッシュメモリのプログラムを実行しながら、同じフラッシュメモリのエリアを書き換えることができません(自分自身でブートローダー機能のプログラムを書き換えてしまうことになります)。
そこで一度、内蔵RAMまたは内蔵EEPROMにプログラムを移して、フラッシュメモリ以外のメモリ上でプログラムを実行します(ただし、バンク切り替え構造のフラッシュメモリは、別のバンクの書き換えは可能)。
STM32ファミリーでは、フラッシュメモリでもRAMでもEEPROMでもプログラムを実行できますので、フラッシュメモリに書かれているブートローダー機能のプログラム一式をいったん、RAMに移してから実行します。そして、フラッシュメモリの内容が書き換わったら、再起動します。再起動の時点では、もうRAM上のプログラムは必要ありませんので、消えてしまっても問題はありません。
このようにすることで、ブートローダーと同じ機能を実現できますし、この場合はユーザーがプログラムの内容を自由に作成できますので、ブートローダーよりも柔軟性の高いフラッシュメモリ書き換え機能が可能になります。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- マイコンの周辺部品は、最低何が必要?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、超初心者の方からよく質問される「マイコンの周辺部品は、最低何が必要?」です。 - マイコンの勉強法
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、超初級者の方からよく質問される「マイコンの勉強法/学習方法」です。 - 消費電力の計算方法
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、中級者の方からよく質問される「マイコンの消費電力計算」についてです。 - マイコンの選び方
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「マイコンの選び方」についてです。