チップやボードを選んでライブラリと初期コードを生成してくれるツール。要JRE
コマンド
$ brew tap AdoptOpenJDK/openjdk
$ brew cask install adoptopenjdk11
上記のようにJRE/JDKをいれてからダウンロードしたSTM32CubeMXインストーラを実行する。
コマンド
$ brew update
$ brew upgrade
$ brew tap ArmMbed/homebrew-formulae
$ brew install arm-none-eabi-gcc
$ arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 9-2019-q4-major) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599]
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
コマンド
$ brew install stlink
$ st-util --version
v1.6.0
$ st-info --version
v1.6.0
$ st-flash --version
v1.6.0
- STM32CubeMXでボードを選ぶ
- Create Project
- 「Initalize app peripherals with their default Mode」でYes
- Project Managerで保存先を設定、ToolchainでMakefileを洗濯して「Generate Code」
- Src/main.c を開く
- /* USER CODE BEGIN 3 / と / USER CODE END 3 */ の手前の } の間に以下のコードを入れる
コード
HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET);
HAL_Delay(100);
HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET);
HAL_Delay(100);
- make を実行する
- STM Nucleo BoardをMacに接続する
- st-info --probe を実行して接続状態を確認する
- プログラムをアップロードする
コマンド
$ st-flash --format ihex write ./build/blink.hex
- 搭載LED(D4)が細かくチカチカしたら成功。なお、デフォルトではボタンでチカチカ具合がかわるソフトがすでに入っている。
- Nucleo F401REボードはボードの小さい方がST-Linkになりプログラマになるそうだ。
$ sudo apt install -y gcc-arm-none-eabi binutils-arm-none-eabi stlink-tools build-essential
$ cat > flash.make << 'EOS'
flash:
st-flash --format ihex write $(BUILD_DIR)/$(TARGET).hex
EOS
$ echo 'include flash.make' >> Makefile