flash_stm32
名称
内蔵フラッシメモリ利用ライブラリ
/icons/hr.icon
概要
本ライブラリは、内蔵フラッシュメモリに対してデータの書込みをサポートします。
(仮想EEPROMクラスライブラリ(EEPROM)に含まれているサブルーチンです) 内蔵フラッシュメモリは次の性質を持ちます。
データの消去はページ単位、フラッシュメモリ容量128kバイトまでのデバイスは1024バイト、超える場合は2048バイト
データの書込み単位はハーフワード(2バイト)でページ消去後はページ内の各アドレスに1度だけ書込み可能
データ消去した値を読んだ場合の値は0xFF
書込み、消去時はFLASHプログラム消去コントローラのロックを解除、書き込み後はロックを行う。
中容量デバイスの場合、フラッシュメモリの構成は次のような構成となります。
(下記データは資料1より引用)
https://gyazo.com/f22d2f25a212eae60b7cdc618389b04a
ページ0~ページ7の8kバイトは、ブートーローダー領域として利用されています。
ページ8からはスケッチの書込み領域として利用されます。
フラッシュメモリの領域を利用する場合、作成したスケッチサイズ+ブートローダーサイズ8kバイト以降のページを利用しなければなりません。
定数
■FLASH_Status 列挙型
FLASH_BUSY 1 フラッシュメモリコントローラがビジー状態
FLASH_ERROR_PG 2 フラッシュメモリプログラミングエラー
FLASH_ERROR_WRP 3 フラッシュメモリー書込み保護
FLASH_ERROR_OPT 4 オプションバイトエラー(補数不一致)
FLASH_COMPLETE 5 処理完了
FLASH_TIMEOUT 6 タイムアウト
FLASH_BAD_ADDRESS 7 アドレス異常
■ FLASH_Status FLASH_GetStatus(void)
FLASHステータスを返します。
戻り値
FLASH_BUSY、FLASH_ERROR_PG、FLASH_ERROR_WRPまたはFLASH_COMPLETE
■ FLASH_Status FLASH_WaitForLastOperation(uint32 Timeout)
書込み操作が完了するか、またはTIMEOUTが発生するのを待ちます。
引数
Timeout :フラッシュプログラミングタイムアウト時間
戻り値
FLASH_ERROR_PG、FLASH_ERROR_WRP、FLASH_COMPLETEまたはFLASH_TIMEOUT
■ FLASH_Status FLASH_ErasePage(uint32 Page_Address)
指定されたFLASHページを消去します。
引数
Page_Address :消去するページアドレス
戻り値
FLASH_BUSY、FLASH_ERROR_PG、FLASH_ERROR_WRP、FLASH_COMPLETEまたはFLASH_TIMEOUT
■ FLASH_Status FLASH_ProgramHalfWord(uint32 Address, uint16 Data)
指定されたアドレスのハーフワードをプログラムします。
引数
Address :プログラムするアドレス
Data :プログラムするデータ
戻り値
FLASH_ERROR_PG、FLASH_ERROR_WRP、FLASH_COMPLETEまたはFLASH_TIMEOUT
■ void FLASH_Unlock(void)
FLASHプログラム消去コントローラのロックを解除します。
■ void FLASH_Lock(void)
FLASHプログラム消去コントローラをロックします。
関連項目
参考文献
/icons/hr.icon
このドキュメントは、たま吉がEEPROMライブラリのソースを解析し執筆ししています。