はじめに
こちらの記事の続き、準備編 (2) です。
本編
1. 準備
1-1. STM32プロジェクト追加
STM32CubeIDEから「STM32 project」を作成します。
- 「Project Name」は「STM32App」
- 他はデフォルトのまま
後は「Finish」押下。
以降も「Yes」押下でOKです。
1-2. 割り込み設定変更
ASPカーネルで(たぶん)ディスパッチ時に使用している、SVC割り込みのコード作成をやめます。
「STM32App.ioc」を開き、左側フレームから「Categories」 - 「System Core」 - 「NVIC」を選択。
次に右側フレームの「Code generation」タブより、「System service call via SWI instruction」行の「Generate IRQ handler」のチェックを外します。
保存後のコード生成も忘れずに!
1-3. ビルド設定変更
1-3-1. 浮動小数点リンケージの変更
STM32Appプロジェクトの上で右クリック - 「Properties」を開き、「C/C++ Build」 - 「Settings」を選択、更に「Tool Settings」タブを選択。
「MCU Settings」の「Floating-point ABI」を「Mix HW/SW Implementation (-mfloat-abi=softfp)」とします。
(ASPカーネルと設定値を合わせています)
1-3-2. ASPカーネルライブラリを取り込む
上記と同じく「Tool Settings」タブを選択。
「MCU GCC Linker」 - 「Libraries」の設定を以下とします。
- 「Libraries (-l)」に「kernel」を追加
- 「Library search path」に「"${workspace_loc:/RTOS}/asp/OBJ"」を追加
1-3-3. ASPカーネル・アプリケーションオブジェクトを取り込む
上記と同じく「Tool Settings」タブを選択。
「MCU GCC Linker」 - 「Miscellaneous」、「Additional object files」に以下の順で追加します。
- ${workspace_loc:/RTOS}/asp/OBJ/log_output.o
- ${workspace_loc:/RTOS}/asp/OBJ/vasyslog.o
- ${workspace_loc:/RTOS}/asp/OBJ/t_perror.o
- ${workspace_loc:/RTOS}/asp/OBJ/strerror.o
- ${workspace_loc:/RTOS}/asp/OBJ/target_inithook.o
- ${workspace_loc:/RTOS}/asp/OBJ/chip_serial.o
- ${workspace_loc:/RTOS}/asp/OBJ/banner.o
- ${workspace_loc:/RTOS}/asp/OBJ/syslog.o
- ${workspace_loc:/RTOS}/asp/OBJ/serial.o
- ${workspace_loc:/RTOS}/asp/OBJ/logtask.o
- ${workspace_loc:/RTApp}/application/sample1.o
- ${workspace_loc:/RTApp}/application/kernel_cfg.o
※手動でプロジェクトファイルを書き換えたほうがたぶん早い
2. ビルド確認
この段階でビルドが通り、STM32App.elf
が生成されれば、設定は完了しています。
(略)
arm-none-eabi-size STM32App.elf
arm-none-eabi-objdump -h -S STM32App.elf > "STM32App.list"
text data bss dec hex filename
18432 20 3196 21648 5490 STM32App.elf
Finished building: default.size.stdout
Finished building: STM32App.list
(略)
3. 動作確認
この段階では単なる空のアプリケーションなので、ログも出なければLEDも点滅しませんが、
「ダウンロードでき、例外等が発生しない」
その程度は見たほうがいい(かも)です。
おわりに
次回以下記事で、いよいよHALドライバを使い、LEDを点滅させてみますさせました!
STM32CubeIDEでTOPPERS/ASPカーネルとHALドライバを同居 - 本編 - Qiita
https://qiita.com/imagou/items/f13ddfbccecafb8d3f1b
参考
(特になし)