0
在此之前,我尝试IDE Keil和她的工作,但作为IDE它是可怕的。 因此,我试图使用CLion 2016.3为Ubuntu 16.04上的STM32L100RCx目标构建嵌入式C++项目。但我不能解开如何正确设置。阅读Jetbrain的博客并不能帮助我。编译后有一些错误,它无法从* .ld文件中找到某个调用。 cmake的标志:Clion + STM32L1xx - 如何设置
SET(CMAKE_C_FLAGS "-mcpu=cortex-m3 -mthumb" "-msoft-float -mfix-cortex-m3-ldrd")
而且得到了一个错误:
/tmp/ccPo0ceQ.s:713: Error: selected processor does not support `dsb 0xF' in ARM mode
/tmp/ccPo0ceQ.s:734: Error: selected processor does not support `dsb 0xF' in ARM mode
/tmp/ccPo0ceQ.s:1100: Error: selected processor does not support `dsb 0xF' in ARM mode
/tmp/ccPo0ceQ.s:1111: Error: selected processor does not support `isb 0xF' in ARM mode
/tmp/ccPo0ceQ.s:1157: Error: selected processor does not support `dmb 0xF' in ARM mode
*** recipe for target 'CMakeFiles/Project.elf.dir/Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c.obj' failed
任何一个可以帮助我,也可以让我工作的CMakeLists.txt和* .cmake文件?
UPD:
我的CMake的文件:
include(CMakeForceCompiler)
set(CMAKE_SYSTEM_NAME Generic)
CMAKE_FORCE_C_COMPILER(/opt/arm/bin/arm-none-eabi-gcc GNU)
CMAKE_FORCE_CXX_COMPILER(/opt/arm/bin/arm-none-eabi-g++ GNU)
SET(CMAKE_C_FLAGS "-mcpu=cortex-m3 -mthumb" "-msoft-float -mfix-cortex-m3-ldrd")
# fix long strings (CMake appends semicolons)
string(REGEX REPLACE ";" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "")
set(BUILD_SHARED_LIBS OFF)
set(CMAKE_CXX_FLAGS "${COMMON_FLAGS} -std=c++11")
set(CMAKE_C_FLAGS "${COMMON_FLAGS} -std=gnu99")
set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/STM32L100RCTx_FLASH.ld)
set(CMAKE_EXE_LINKER_FLAGS "-Wl,-gc-sections -T ${LINKER_SCRIPT}")
你使用正确的交叉编译器吗?您是否[正确设置了工具链](https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html)? –
感谢您的链接,我会稍后阅读。 – Sergey
我假设你在'CmakeForceCompiler.cmake'文件中设置了'COMMON_FLAGS'?否则,它是未设置和空的。并且您将'CMAKE_C_FLAGS'多次设置为不同的值。 –