なんとか⭐︎ロボコンズ STM32ライブラリ
で開発・動作確認しています。
https://eyr1n.github.io/stm32rcos/
このライブラリには CMSIS-RTOS2(FreeRTOS) が必要です。
Pinout & Configuration
-> System Core
-> SYS
を選択Timebase Source
に空いているハードウェアタイマーを指定SysTick
は RTOS が使用するためmain_thread
の設定Pinout & Configuration
-> Middleware and Software Packs
-> FREERTOS
を選択Interface
に CMSIS_V2
を指定するAdvanced settings
-> USE_NEWLIB_REENTRANT
を Enabled
にするTasks and Queues
-> defaultTask
を以下のように設定するmain_thread
Project Manager
-> Project
を選択Project Settings
-> Toolchain / IDE
に CMake
を指定するThread safe Settings
-> Enable multi-threaded support
にチェックを入れるProject Manager
-> Advanced Settings
を選択Register Callback
-> CAN
または FDCAN
を ENABLE
にするRegister Callback
-> UART
を ENABLE
にするSTM32CubeMX を用いて CMake 向けにプロジェクトを書き出したあと、STM32 VS Code Extension の Import CMake project
からプロジェクトを取り込み、CMakeLists.txt
を以下のように書き換えます。
サンプルコードは各クラスのドキュメントに付属しています。
Core/Src/main_thread.cpp
のようなファイルを作成し、CMakeLists.txt
の target_sources
を以下のようにして、main_thread.cpp
内にサンプルコードを貼り付ければ動作するはずです(もちろん、CubeMXを用いて各ペリフェラルを適切に設定し、使用するピンやIDなどは各々の環境に合わせる必要があります)。
MIT License