该工程使用
gcc-arm-none-eabi
编译,支持使用openocd
烧录,面向stm32f103
系列芯片 编译前需安装gcc-arm-none-eabi
及 Cmake 烧录前需安装openocd
本文档基于 linux
- 在终端输入
git clone https://github.com/MagiL0/stm32_gcc_template.git
- 在该文件夹打开终端,输入
终端输出无 warning 及 error 时说明没有问题,生成的
cd build cmake .. make
.hex
.elf
等文件在你的当前文件夹 (build
) 中。
- 连接 jlink 或 stlink。
- 在终端输入
openocd -f jlink.cfg -f stm32f1x.cfg # 如果使用 stlink,则输入: # openocd -f stlink.cfg -f stm32f1x.cfg
- 不要退出,打开新的命令行终端,输入
telnet localhost 4444
- 成功连接后输入行显示
>
- 输入
program led_test.elf
开始烧录 - 烧录成功后,输入
restart
程序开始执行 - 更多详细的步骤如调试等,请查询
openocd
教程
- 打开
CMakeLists.txt
,修改第 7 行中的led_test
为你自己的工程名 - 删除
build
文件夹中的所有内容 - 重新编译 (参考 1.1)
-
- 无需修改,直接把所需
.c, .h
文件扔进子目录 (如USER/
) 即可 - 如果是细分了
src
inc
的文件夹,.s, .c
扔进src
,.h
扔进inc
- 无需修改,直接把所需
-
- 当添加文件夹后在新增的文件夹里添加工程文件时,需作以下修改:
- 添加源文件时,编辑
CMakeLists.txt
。在 65 行:file(GLOB_RECURSE SOURCES
后添加.c
文件所在的目录。- 如:在
USER
中新建src
目录存放.c
文件,则需修改为:
file(GLOB_RECURSE SOURCES "CORE/*.c" "SYSTEM/delay/*.c" "SYSTEM/usart/*.c" "SYSTEM/sys/*.c" "USER/*.c" "STM32F10x_FWLib/src/*.c" "USER/src/*.c" )
- 如:在
- 添加头文件时,编辑
CMakeLists.txt
。在第 55 行include_directories
的括号后添加.h
文件目录即可。 - 添加汇编语言文件时,编辑
CMakeLists.txt
。在第 82 行list
的括号中末尾处添加.s
文件路径即可 - 以上修改时可以不加引号,但若文件目录名称中含有空格,则必须添加引号。
- 添加源文件时,编辑
- 当添加文件夹后在新增的文件夹里添加工程文件时,需作以下修改:
- 当修改文件夹名称时,将
CMakeLists.txt
中的所有被修改的文件夹名称全部修改为被修改后的。
- 使用
stm32f103
中的c, d, e, f, g
系列时无需修改。 - 使用
stm32f103
中的8, b
系列时需打开CMakeLists.txt
,修改第 22 行的STM32F10X_HD
为STM32F10X_MD