STM32开发环境搭建
本文介绍基于gcc工具链的STM32开发环境搭建,以Ubuntu系统为例。
安装工具链
sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi gdb-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib openocd
工具链的使用
- 编译
- C编译器是 arm-none-eabi-gcc ,C++编译器是arm-none-eabi+g++
- 选择指令集CPU和CPU架构,例如Cortex-M3 指令集是thumb,架构是ARMv7-M 所以选项为:
-mthumb -mcpu=cortex-m3 -march=armv7-m
- 选择浮点运算方式 :使用
-mfloat-abi
选项,可能取值有soft
,表示不使用浮点运算单元 ,用整数计算模拟浮点运算;softfp
,表示使用浮点运算单元,参数传递先使用整数寄存器,再传递到fpu寄存器中;hard
,表示使用浮点运算单元,参数传递直接使用浮点寄存器。使用-mfpu
指定浮点运算单元,例如fpv4-sp-d16
其中sp表示单精度(Single-precision)
- 链接
- 选择C库,有两个标准库可选,newlib和newlib-nano,如果是C++ 有类似的stdc++_nano和supc++_nano,后者有更好的代码尺寸的优化。如果使用newlib-nano则要增加编译选项和链接选项
--specs=nano.specs
- 选择链接脚本
- 选择C库,有两个标准库可选,newlib和newlib-nano,如果是C++ 有类似的stdc++_nano和supc++_nano,后者有更好的代码尺寸的优化。如果使用newlib-nano则要增加编译选项和链接选项