検索
連載

フラッシュメモリをEEPROMとして使う「裏技」Q&Aで学ぶマイコン講座(47)(3/3 ページ)

マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。47回目は、中級者の方からよく質問される「フラッシュメモリをEEPROMとして使う裏技」についてです。

Share
Tweet
LINE
Hatena
前のページへ |       

実際の製品のフラッシュメモリ仕様

 実際の製品のフラッシュメモリの仕様を見てみましょう。

 図3に32ビットマイコン「STM32L476」(STマイクロエレクトロニクス製)のリファレンスマニュアルと、データシートから抜粋したフラッシュメモリの仕様を示します。


図3:実際のフラッシュメモリの仕様(STM32L476の場合) (クリックで拡大)

 フラッシュメモリの消去単位はページ(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ファミリ」の各製品に適用可能な互換性があります

Q&Aで学ぶマイコン講座:過去の質問一覧はこちら

次の記事を読む

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る