2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

STM32CubeIDEでTOPPERS/ASPカーネルとHALドライバを同居 - 準備編 (2)

Last updated at Posted at 2019-09-25

はじめに

こちらの記事の続き、準備編 (2) です。

本編

1. 準備

1-1. STM32プロジェクト追加

STM32CubeIDEから「STM32 project」を作成します。

  • 「Project Name」は「STM32App」
  • 他はデフォルトのまま

後は「Finish」押下。

SnapCrab_Ubuntu [実行中] - Oracle VM VirtualBox_2019-10-21_13-45-44_No-00.png

以降も「Yes」押下でOKです。

SnapCrab_Ubuntu [実行中] - Oracle VM VirtualBox_2019-10-21_13-51-16_No-00.png

1-2. 割り込み設定変更

ASPカーネルで(たぶん)ディスパッチ時に使用している、SVC割り込みのコード作成をやめます。

「STM32App.ioc」を開き、左側フレームから「Categories」 - 「System Core」 - 「NVIC」を選択。

次に右側フレームの「Code generation」タブより、「System service call via SWI instruction」行の「Generate IRQ handler」のチェックを外します。

SnapCrab_Ubuntu [実行中] - Oracle VM VirtualBox_2019-10-9_11-46-56_No-00.png

保存後のコード生成も忘れずに!

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カーネルと設定値を合わせています)

SnapCrab_Ubuntu [実行中] - Oracle VM VirtualBox_2019-10-21_13-55-28_No-00.png

1-3-2. ASPカーネルライブラリを取り込む

上記と同じく「Tool Settings」タブを選択。

「MCU GCC Linker」 - 「Libraries」の設定を以下とします。

  • 「Libraries (-l)」に「kernel」を追加
  • 「Library search path」に「"${workspace_loc:/RTOS}/asp/OBJ"」を追加

SnapCrab_Ubuntu [実行中] - Oracle VM VirtualBox_2019-10-21_13-59-20_No-00.png

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

※手動でプロジェクトファイルを書き換えたほうがたぶん早い

SnapCrab_Ubuntu [実行中] - Oracle VM VirtualBox_2019-10-21_14-11-20_No-00.png

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

参考

(特になし)

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?