開発のヒント

開発用ツール、デバッグ

内蔵Bootloaderからの起動 & GPIO状態の確認

STM32マイコンは、USART、I2C、USBなどで、FlashメモリやOption Byteへの書き込みができるBootloaderを内蔵しています。

Option Byteの設定、BOOT端子の状態、Flashメモリの空き状態などによって内蔵Bootloaderから立ち上がった場合、GPIO状態は、内蔵Bootloaderの仕様が記載されているApplicationノート「AN2606」から詳細確認できます。また、FlashメモリがBlank状態なら、内蔵Bootloader によりPull-upされるUSART、I2Cなどの特定ポートの電圧を計ることで、内蔵Bootloaderから起動しているかも確認できます。

一方、STM32開発ツールを使って、起動状態とGPIO状態を確認することも可能です。

  • ① STM32 CubeProgrammerを立ち上げて、ST-LINKを介してターゲットボードに接続します

  • ②「MCU Core」のメニューから、PC(Program Counter)の値を確認することで、起動状態の確認ができます。現在止まっているPCの値が、1FFFxxxxのように、内蔵BootloaderのあるSystemメモリ領域になってる場合は内蔵Bootloaderからの起動状態、0800xxxxのように、通常のFlash領域になってる場合はFlashからの起動状態になります。また、FFFFFFFxのような値になっている場合は、空きFlash、User Programの問題などで、フォルトが発生している状態です。

  • ③ 内蔵Bootloader から起動していることを確認後、同じ画面にあるRun ボタンを押して、CPUを再開します。

  • ④「Registers」のメニューから、該当Device名とGPIOxのレジスタを選択すると、各GPIOレジスタの値から、現在のGPIO状態が確認できます。
  • Applicationノート「AN2606」STM32 CubeProgrammerは無償でダウンロードすることができます。

    過去の開発のヒントはこちら