Previous: 13.2. 書き換えの基本的手順 |
Up: 13.2. 書き換えの基本的手順 |
Next: 13.2.2. フラッシュの消去 |
STM32には、周辺回路として、フラッシュメモリの、消去、書き込みを行うためのフラッシュメモリコントローラが内蔵されています。フラッシュメモリプログラミングはこのコントローラへの指示という形で行います。
STM32のフラッシュメモリは、誤って内容を書き換えてしまうことが無いように、初期状態では書き込みが禁止された状態(ロック状態)になっています。ロックを解除するために使用するのが、FLASH_Unlock関数(ライブラリ 20?1)です。
ライブラリ 20?1 FLASH_Unlock関数
関数プロトタイプ |
void FLASH_Unlock ( void ) |
動作 |
フラッシュの消去回路のロックを解除します。 |
引数 |
無し。 |
戻り値 |
無し。 |
サンプルプログラムでは冒頭部分で以下のようにしてフラッシュのロックを解除しています。
FLASH_Unlock(); |
次に、実際にフラッシュメモリプログラミングを行う前に、フラッシュメモリコントローラの各種フラグをクリアしておきます。このために使用するのが、FLASH_ClearFlag関数(ライブラリ 20?2)です。
ライブラリ 20?2 FLASH_ClearFlag関数
関数プロトタイプ |
void FLASH_ClearFlag ( uint16_t FLASH_FLAG ) |
|||||||
動作 |
フラッシュコントローラのペンディング中のフラグをクリアします。 |
|||||||
引数 |
FLASH_FLAG |
クリアするフラグを以下のマクロの組み合わせで指定します。
|
||||||
戻り値 |
無し。 |
サンプルプログラムでは以下のようにしてすべてのフラグをクリアしています。
FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR); |
Previous: 13.2. 書き換えの基本的手順 |
Up: 13.2. 書き換えの基本的手順 |
Next: 13.2.2. フラッシュの消去 |