フラッシュメモリをEEPROMとして使う「裏技」:Q&Aで学ぶマイコン講座(47)(3/3 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。47回目は、中級者の方からよく質問される「フラッシュメモリをEEPROMとして使う裏技」についてです。
実際の製品のフラッシュメモリ仕様
実際の製品のフラッシュメモリの仕様を見てみましょう。
図3に32ビットマイコン「STM32L476」(STマイクロエレクトロニクス製)のリファレンスマニュアルと、データシートから抜粋したフラッシュメモリの仕様を示します。
フラッシュメモリの消去単位はページ(2048バイト)とバンク、全体の3種類です。また、書き換え回数は10kcycles(1万回)ですので、図2の例のように仮想アドレス空間を256バイトとした場合は、16万回書き換え可能になります。
さらに改善する方法
図2で示した例ではページ0とページ1の2ページだけでしたが、図3のSTM32L476にはページがバンク1だけで256ページあります。従って、さらにページを増やして使うと、書き換え回数を増やすことができます。また、仮想アドレス空間を256バイトよりも少なくすると、さらに書き換え回数を増やすことができます。
ただし、ページ数を増やした場合、仮想アドレス空間と実メモリ空間の相関および書き込み回数を把握することが複雑になる、という点に注意が必要です。システム設計者は、これらを集中的に管理するアルゴリズムを作ってプログラムに実装することをお勧めします。全てのページが同じ割合で使用され、各ページの書き込みサイクル数が均等になるようにしてください。また、総書き込みサイクル数がフラッシュメモリのスペックを超えないように管理する必要もあります。
実際のソフトウェア
フラッシュメモリをEEPROMとして使うためのソフトウェアは、マイコンメーカーが提供している場合があります。例に挙げたSTM32L476では、「EEPROM emulation in STM32F10x microcontrollers」*)というライブラリが提供されています(詳細については、実際のプログラムと説明書を確認してください)
*)このライブラリは「STM32F10x」というマイコンをベースに作られていますが、STM32L476などの「STM32ファミリ」の各製品に適用可能な互換性があります
(次の記事を読む)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- マイコンがリセットされる要因
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。46回目は、初心者の方からよく質問される「マイコンがリセットされる要因」についてです。 - フラッシュメモリにはウェイトステートがなぜ必要なのか
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。45回目は、初心者の方からよく質問される「フラッシュメモリのウェイトステート」についてです。 - フォールト(Fault)って何? 〜 種類と解析方法
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。44回目は、初心者から中級者の方からよく質問される「フォールト」(Fault)についてです。 - 「タンパ検知」「耐タンパ」とは?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。43回目は、初心者の方からよく質問される「タンパ検知」についてです。 - マイコンにおける「CAN」と「USB」の失敗事例集
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。42回目は、初心者の方からよく質問される「CANとUSBの失敗事例」についてです。 - マイコンはビット数で何がどう違うのか?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。41回目は、初心者の方からよく質問される「マイコンはビット数で何がどう違うのか?」です。