STM32 OptionBytes2015年04月04日 22時21分19秒

Option bytes とは?
ライトプロテクト又はリードアウトプロテクト又は RAMBoot の禁止が設定できるものらしい。
NXP の CRP と似た機能だろう。
サンプルは私の環境だと Ride7 と MDK-ARM の中にある。
C:\Program Files\Raisonance\Ride\lib\ARM\STM32xxx_OptionBytes.c
C:\Keil\ARM\Boards\Keil\MCBSTM32\Blinky\STM32F10xOPT.s
C:\Keil\ARM\Boards\Keil\MCBSTM32F200\Blinky\STM32F2xx_OPT.s
C:\Keil\ARM\Boards\ST\STM32L152-EVAL\Blinky\STM32L1xx_MD_OPT.s
そのほか Web 上を探してもほとんど見当たらない。
書き込むバイト数は 12バイトから64バイトまである。(ほかのパターンもあるのかもしれない)
MPUによって書き込む場所もサイズも異なるので調べるのも大変だ。
手元にあるサンプルからデフォルトの値を書き出してみると以下のようになる。
STM32F0    AA55FF00 FF00FF00 FF00FF00
STM32F1    A55AFF00 FF00FF00 FF00FF00 FF00FF00
STM32F2    FFAA0055 FFAA0055 FF3F00C0 FF3F00C0
STM32F3    AA55FF00 FF00FF00 FF00FF00 FF00FF00
STM32F41   FFAA0055 FFAA0055 FF3F00C0 FF3F00C0
STM32F43   EFAA1055 EFAA1055 FF3F00C0 FF3F00C0
STM32L0    AA0055FF 70808F7F 0000FFFF 0000FFFF
STM32L1MD  AA0055FF 780087FF 0000FFFF 0000FFFF
STM32L1MD+ AA0055FF 780087FF 0000FFFF 0000FFFF 0000FFFF 0000FFFF 0000FFFF 0000FFFF
STM32L1HD  AA0055FF 780087FF 0000FFFF 0000FFFF 0000FFFF 0000FFFF 0000FFFF 0000FFFF
           AA005500 78008700 0000FFFF 0000FFFF 0000FFFF 0000FFFF 0000FFFF 0000FFFF
STM32W1    A55AFF00 FF00FF00 FF00FF00 FF00FF00
実際にこの機能を使う時は ST-LINK や DfuSe を使うのだろう。

というわけでこの機能も私には必要ないものだった。