首页 > 其他分享 >stm32 f103c8 clion 引入标砖库 CMakeLists.txt

stm32 f103c8 clion 引入标砖库 CMakeLists.txt

时间:2023-08-09 15:56:08浏览次数:51  
标签:PROJECT CMakeLists set CMAKE stm32 add eabi 标砖库 arm

使用 Clion IDE 开发 stm32 使用标准库 可以使用 qemu 代替开发版

使用 CMakeLists.txt 编译项目



set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_VERSION 1)
cmake_minimum_required(VERSION 3.26)

set(CMAKE_C_COMPILER arm-none-eabi-gcc)
set(CMAKE_CXX_COMPILER arm-none-eabi-g++)
set(CMAKE_ASM_COMPILER arm-none-eabi-gcc)
set(CMAKE_AR arm-none-eabi-ar)
set(CMAKE_OBJCOPY arm-none-eabi-objcopy)
set(CMAKE_OBJDUMP arm-none-eabi-objdump)
set(SIZE arm-none-eabi-size)
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)

project(clion_stm32_cmakelist_project C CXX ASM)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_C_STANDARD 11)

add_compile_options(-mcpu=cortex-m3 -mthumb -mthumb-interwork)
add_compile_options(-ffunction-sections -fdata-sections -fno-common -fmessage-length=0)

message(STATUS "Minimal optimization, debug info included")
add_compile_options(-Og -g)

add_definitions(
        -DUSE_HAL_DRIVER
        -DSTM32F103xB
        -DUSE_STDPERIPH_DRIVER
        -DSTM32F10X_HD
)

include_directories(
        ./stm_lib/inc
        ./stm_lib/src
        ./cmsis_boot
        ./cmsis
)

file(GLOB_RECURSE SOURCES
        "cmsis_boot/startup/*.*"
        "cmsis_boot/*.c"
        "cmsis_boot/*.h"
        "cmsis/*.h"
        "stm_lib/inc/*.h"
        "stm_lib/src/*.c"
        "main.c"
)

add_link_options(-Wl,-gc-sections,--print-memory-usage,-Map=${PROJECT_BINARY_DIR}/${PROJECT_NAME}.map)
add_link_options(-mcpu=cortex-m3 -mthumb -mthumb-interwork)
add_link_options(-T ${CMAKE_SOURCE_DIR}/STM32F103C8Tx_FLASH.ld)

add_executable(${PROJECT_NAME}.elf ${SOURCES} ${CMAKE_SOURCE_DIR}/STM32F103C8Tx_FLASH.ld)

add_custom_command(TARGET ${PROJECT_NAME}.elf POST_BUILD
        COMMAND ${CMAKE_OBJCOPY} -Oihex $<TARGET_FILE:${PROJECT_NAME}.elf> ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.hex
        COMMAND ${CMAKE_OBJCOPY} -Obinary $<TARGET_FILE:${PROJECT_NAME}.elf> ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.bin
        COMMENT "Building ${HEX_FILE}
Building ${BIN_FILE}")

使用 docker qemu 模拟器

 qemu-system-arm -M stm32-f103c8 -kernel clion_stm32_cmakelist_project.bin

标签:PROJECT,CMakeLists,set,CMAKE,stm32,add,eabi,标砖库,arm
From: https://www.cnblogs.com/guanchaoguo/p/17617045.html

相关文章

  • 基于CUBEMX的STM32F4 Hal库,配置LVGL(无操作系统版)
    本篇文章移植思路适用于所有嵌入式MCU,包括Arm,STM32,NXP,乐鑫,Nuvoton,Arduino,RT-Thread,Zephyr,NuttX,Adafruit等等。为什么要写这一篇移植教程?也许你会说各种开源论坛上面上,已经有很多移植教程了,为什么还要再重新写一篇?因为很简单我按照前辈们的思路和移植步骤,到最后没有一个成功的,这......
  • 一文搞明白STM32芯片存储结构
    一、前言        本篇介绍STM32芯片的存储结构,ARM公司负责提供设计内核,而其他外设则为芯片商设计并使用,ARM收取其专利费用而不参与其他经济活动,半导体芯片厂商拿到内核授权后,根据产品需求,添加各类组件,生产芯片售卖。图1为STM32的组成示意图,其中Cortex-M3内核、调试系统都......
  • H7-TOOL的高速DAPLINK用于新版STM32CubeIDE V1.13及其以上版本的超简单实现方法(2023-0
    之前分享了一个方法,太繁琐了,H7-TOOL群的群友提供了一个方法,实现非常简单。1、使用STM32CubeMX或者自己创建一个STM32CubeIDE工程后,设置这两个地方即可: 配置调试器,设置完毕记得点击右下角的Apply2、然后修改这个cfg文件,F407IGTDebug.cfg,注意和第1步cfg是一个文件。修改......
  • STM32Cube HW-493激光发射
    文章代码使用HAL库。@TOC一、HW-493激光模块HW-493激光模块是一种小型化的激光发射模块,其主要特点是体积小、功耗低、精度高、可靠性强。它采用了半导体激光器作为光源,搭配高精度光学透镜,可以发射出稳定、准确、高亮度的激光光束。VCC:+5V电压。(电源电压范围为3.5V-5.5V,过高......
  • 基于STM32设计的智能空调
    一、项目背景随着人们生活水平的不断提高,对居住环境的舒适度要求也越来越高。空调作为一种重要的家电设备,已经成为了现代家庭中必不可少的一部分。本文介绍了一种基于STM32的智能空调设计方案,可以自动地根据环境温度进行温度调节。二、设计思路2.1整体构架智能空调系统由温度检测......
  • stm32用keil5新建C/C++写硬件串口模块的套路
    新建文件:写代码:就在这里开始写initSerial了..........
  • 当没有STLINK的时候,用串口进行下载程序到stm32里操作步骤:
    https://www.bilibili.com/video/BV1th411z7sn?p=30&vd_source=791674f04f7270b40ba9c9d5a7e3281e前5min0、连接电路:1、打开软件:FlyMcu2、keil5导出.hex文件重新编译就出来了hex文件3、FlyMcu配置波特率等参数4、stm32跳冒切换+复位5、烧录6、stm32跳冒切换+复位......
  • STM32F030C8T6 SPI 通讯问题排查分析
    配置及问题列举1.STM32F030C8T6:48M系统时钟配置;2.SPI1:驱动LCD,半工主机通讯,极性为高、边沿为2,时钟分频系数16分频;3.SPI2:驱动TDC-GP21,全工主机通讯,极性为低、边沿为2,时钟分频系数4分频;1.LCD驱动为上升沿,改为{极性为低、边沿为1},初始化却无效;2.TDC-GP21驱动为下降沿,读取I......
  • 基于STM32设计的太阳能热水器
    一、概述本项目使用STM32F103C8T6微控制器作为核心处理器,结合多个传感器和执行器,实现了太阳能热水器的自动控制。通过对光照、温度、水位等各种参数的监测和分析,对水泵、电磁阀等设备进行自动控制,从而实现太阳能热水器的高效、安全、可靠运行。二、硬件设计(1)模块组成太阳能热水器......
  • STM32案例学习 GY-39环境监测传感器模块
    STM32案例学习GY-39环境监测传感器模块硬件平台野火STM32F1系列开发板正点STM32F1系列开发板STM32F103ZET6核心板GY-39环境监测传感器模块GY-39环境监测传感器模块GY-39是一款低成本,气压,温湿度,光强度传感器模块。工作电压3-5v,功耗小,安装方便。其工作原理是,MCU收集各种传感器......