STM32H7 デバイスに値を永続的に保存するオプションを確認することを検討しています。
高レベルのオプションについての私の理解は次のとおりです。
- eepropm.h/c による EEPROM エミュレーション (HAL_FLASH/EX ドライバーを使用)
- HAL_FLASH および HAL_FLASH_EX ドライバー、stm32h7xx_hal_flash.h/c stm32h7xx_hal_flash_ex.h/c
- ある種の外部ストレージ、EEPROM、FLASH など。
これを行うための他のライブラリオプションはありますか?
eeprom ライブラリの付加価値は何ですか?
私が知る限り、eeprom ライブラリは 3 つの機能しか提供しておらず、すべてを構成できるわけではありません。すぐに使用できるライブラリというよりも、変更できる例のようなものだと思います。
ST AN4061 アプリケーション ノートSTM32F0xx eeprom エミュレーションの ST アプリケーション ノートを参考に、ウェア レベリングを自分で追加することを提案します。
- 「ウェアレベリングのために、少なくとも 2 つのフラッシュ メモリ ページを使用する必要があります。可能であればさらに多くのページを使用してください」
これは、ウェアレベリングがあることを意味します。
さらに、これらのオプションはスレッドセーフですか? HAL_FLASH ドライバーには割り込みオプションがありますが、eeprom ライブラリでは、可能であればそれを実現する方法が明確にされていません。
ウェア レベリングを提供し、スレッド セーフなオプションが優先されます。