使用 LLVM 编译 RT-Thread
硬件测试环境
pdd 不久前搞活动, 99 块买了两块阿里出的 L469 的开发板,最高主频为 80Mhz。所以本次测试硬件就使用该开发板进行测试。
工具准备
1、使用 git 工具下载 llvm 工具链:
git clone https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm.git
2、下载 make 工具:
git clone https://github.com/xpack-dev-tools/windows-build-tools-xpack.git
编译
1、在 rt-thread\bsp\stm32\stm32l496-ali-developer
目录下打开 env 工具:
2、使用命令 scons --target=cmake
生成 CMakelists.txt 文件:
3、这里的命令生成的 CMake 文件使用的是 gcc 的工具链,需要修改一下使用 llvm 的工具链:
1SET(CMAKE_C_COMPILER "D:/download/idm/LLVMEmbeddedToolchainForArm-13.0.0-windows/LLVMEmbeddedToolchainForArm-13.0.0/bin/clang.exe")
2SET(CMAKE_ASM_COMPILER "D:/download/idm/LLVMEmbeddedToolchainForArm-13.0.0-windows/LLVMEmbeddedToolchainForArm-13.0.0/bin/clang.exe")
3SET(CMAKE_C_FLAGS "--config armv7em_hard_fpv4_sp_d16_nosys -Os")
4SET(CMAKE_ASM_FLAGS " -c --config armv7em_hard_fpv4_sp_d16_nosys -Wa,-mimplicit-it=thumb")
5SET(CMAKE_C_COMPILER_WORKS TRUE)
6
7SET(CMAKE_CXX_COMPILER "D:/download/idm/LLVMEmbeddedToolchainForArm-13.0.0-windows/LLVMEmbeddedToolchainForArm-13.0.0/bin/clang++.exe")
8SET(CMAKE_CXX_FLAGS "--config armv7em_hard_fpv4_sp_d16_nosys -Os")
9SET(CMAKE_CXX_COMPILER_WORKS TRUE)
10
11SET(CMAKE_OBJCOPY "D:/download/idm/LLVMEmbeddedToolchainForArm-13.0.0-windows/LLVMEmbeddedToolchainForArm-13.0.0/bin/llvm-objcopy.exe")
12SET(CMAKE_SIZE "D:/download/idm/LLVMEmbeddedToolchainForArm-13.0.0-windows/LLVMEmbeddedToolchainForArm-13.0.0/bin/llvm-size.exe")
13
14SET(CMAKE_EXE_LINKER_FLAGS "--config armv7em_hard_fpv4_sp_d16_nosys ,--gc-sections,-Map=rtthread.map,-u,Reset_Handler -T ${CMAKE_SOURCE_DIR}/board/linker_scripts/link.lds")
4、输入命令 cd build & cmake -G "MinGW Makefiles" .. & D:\software\tools\xpack-windows-build-tools-2.12.2\bin\make.exe
编译工程:
1LiuKang@DESKTOP-538H6DE D:\repo\github\rt-thread\bsp\stm32\stm32l496-ali-developer
2$ cd build
3
4LiuKang@DESKTOP-538H6DE D:\repo\github\rt-thread\bsp\stm32\stm32l496-ali-developer\build
5$ cmake -G "MinGW Makefiles" ..
6-- Configuring done
7-- Generating done
8-- Build files have been written to: D:/repo/github/rt-thread/bsp/stm32/stm32l496-ali-developer/build
9
10LiuKang@DESKTOP-538H6DE D:\repo\github\rt-thread\bsp\stm32\stm32l496-ali-developer\build
11$ D