[author: Kazushi Kurasawa (KuraZuzu)]
This is a library for mobile robots using HALDriver With c++
Please refer to the following repository for instructions).
You need generate code from .ioc(STM32CubeMX) project. This project .ioc version : 6.2.1
これはマイクロマウス向けのc/c++プログラムであり,HALドライバを用いています.
.ioc ファイル(STM32CubeMX)によるピンや内部クロックの設定から生成されたコードを必要とします.このプロジェクトではCmakeに向けて解説します.
また,説明のためにMSLHがZuzuHalfTPPmod1というProjectに内包されているものと仮定します.
CMSIS-DSPライブラリがSTM32Cubeの<STM32Cubeのディレクトリ>/STM32Cube/Repository/<現在のファームウェアバージョン(例:STM32Cube_FW_F4_V1.26.1)>/Drivers/CMSIS/DSP/に存在します.
この中のIncludeとSourceをコピーして,プロジェクトのDrivers/CMSIS/DSP(なければ作る)に配置し,コンパイルの設定に追加します.
これは,CMakeLists.txtのnclude_directories()にDrivers/CMSIS/DSP/Includeを追加すれば大丈夫です.
また,
add_definitions(-DARM_MATH_CM4 -DARM_MATH_MATRIX_CHECK -DARM_MATH_ROUNDING -D__FPU_PRESENT=1)を
include_directories(Inc Drivers/STM32F4xx_HAL_Driver/Inc Drivers/STM32F4xx_HAL_Driver/Inc/Legacy Drivers/CMSIS/Device/ST/STM32F4xx/Include Drivers/CMSIS/Include Drivers/CMSIS/DSP/Include)の後に追加します.
FPUを有効化するために以下の2点の静的ライブラリも加えます.
arm_cortexM4lf_math.liblibarm_cortexM4lf_math.a <br>
これは,<STM32Cubeのディレクトリ>/STM32Cube/Repository/<現在のファームウェアバージョン>/Drivers/CMSIS/Libの中の./ARMと./GCC内にあります
これらをリンクする方法として
target_link_libraries(${PROJECT_NAME}.elf ${CMAKE_SOURCE_DIR}/Drivers/CMSIS/Lib/ARM/arm_cortexM4lf_math.lib ${CMAKE_SOURCE_DIR}/Drivers/CMSIS/Lib/GCC/libarm_cortexM4lf_math.a)を
add_executable(${PROJECT_NAME}.elf ${SOURCES} ${LINKER_SCRIPT} )このリポジトリのプロジェクト設定等は KuraZuzu(リポジトリ管理者) の機体向けのものであるため,自分で設定した .iocファイル でGenerate Codeによる上書きを行えば自動で更新してくれます.
ただし,動作確認をしたのはJetbrain社のIDEであるCLionのみです.
※Generate Codeの際には,main関数のコールバックを呼ばない設定にしてください. 各設定ファイルが全てmain.cに生成されてしまいます.(2023/07/16 現在)




