STM32F101xx and STM32F103xx のブートはどこから?

STM32F101xx and STM32F103xx リファレンスマニュアル RM0008 の Boot Configuration の項を見ると、 BOOT0, BOOT1ピンの設定で、

  • User Flash Memory (物理アドレス 0x0800 0000~)
  • System Memory (物理アドレス 0x1fff f000~)
  • Embedded SRAM (物理アドレス 0x2000 0000~)

の3つのうちいずれかを起動用として選択できる、となっている。

説明には、

This aliases the physical memory associated with each boot mode to Block 000 (boot memory).
After this startup delay has elapsed, the CPU starts code execution from the boot memory, located at the bottom of the memory address space starting from 0x0000 0000.

なんて書いてある。なんかアイマイな書き方に思えるけど、あとの説明は「ブート用として選択したメモリの、オフセット0x0000 0000 から実行を開始する」っていう意味なんだろうか?→実行してみると、そうみたいだな。

正確には

  • Stackトップアドレス
  • RESET
  • NMI
  • Hard Fault

が入ってるベクタテーブルアドレスが、ブートメモリの先頭(オフセット0x0000 0000)アドレスに設定され、実行が開始される、って感じか。
(ブート用に選択されたメモリが 0x0000 0000 に「割り付けられて」実行されるのか?とか思ってしまった。「オフセット」って明確に一言書いてくれればいいのに)

コメント

タイトルとURLをコピーしました