ファームウェア関数一覧

FLASH_ErasePage

フラッシュメモリの消去を行う。
フラッシュメモリの消去単位はページ単位のみである。
STM32の中容量デバイスの場合はフラッシュメモリの先頭番地から1Kバイト毎であり、0x08000000番地から0x080003FF番地までのフラッシュメモリが一つのページで、それ以降も同様。
先頭のページがPage0で、以降順番。
高容量デバイスの場合、ページの大きさは2Kバイト。
ページ単位より小さい単位での消去を行いたい場合は、一度ページ全体を読出し、消去の後、もう一度書き込む。
0x08000000番地から0x08003000番地を消去するとDFUが破壊される。
不用意に自分自身を破壊しないようにアドレスを選ぶ事。

ヘッダ宣言

関数プロトタイプ

FLASH_Status FLASH_ErasePage (uint32_t Page_Address )

動作

フラッシュメモリのページを消去します。

引数

  • Page_Address
    消去するページをアドレスで指定。ページの先頭アドレスを推奨するが、中途のアドレスでも、そのアドレスを含むページ全体が消去される。

戻り値

  • FLASH_Status
    処理結果を返します

    FLASH_Status説明
    FLASH_BUSYビジー(処理中)状態
    FLASH_ERROR_PGプログラムエラー
    FLASH_ERROR_WRP書き込み保護状態
    FLASH_COMPLETE処理完了
    FLASH_TIMEOUTタイムアウト(時間切れ)

サンプル

  • StartPageマクロのページから、PagesToWriteマクロのページ数分ページ消去する
    FLASHStatusがFLASH_COMPLETE以外になった場合は中断する
     for(EraseCounter = 0; (EraseCounter < PagesToWrite) && (FLASHStatus == FLASH_COMPLETE); EraseCounter++)
    {
    	FLASHStatus = FLASH_ErasePage(FlashBaseAddr + (StartPage * FLASH_PAGE_SIZE) + (FLASH_PAGE_SIZE * EraseCounter));
    	cprintf(“.”);
    }

参照


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-10-13 (木) 17:16:18