注:从ubuntu linux下建立stm32开发环境: GCC安装以及工程Makefile建立转载。
1、STM 32 GCC 安装
stm32 属于arm cortex-m系列thumb指令集,所以给arm用的arm-none-eabi就可以了,首先是下载,下载其中的gcc-arm-none-eabi-[版本号]-linux.tar.bz2,解压到你知道的目录会产生gcc-arm-none-eabi的文件夹。
把该编译器添加到你的环境中:
在最后一行添加:
因为我之前有添加过树莓派的编译器了,所以实际上是这样的:
两个编译器环境中间用冒号隔开;
注销后测试:
可以查看到该编译器的版本,就表示可以了。
2、工程环境的建立
(1)新建个工程文件夹,及其目录
(2)可以下载官方固件库,也可以下载第三方固件库。
下载好固件库之后,解压在libs目录下。然后就是编译固件库。
需要在工程根目录下新建一个mon文件,此文件不管是在编译固件库、还是在编译源文件的时候都会用到。需要根据你的自己的情况修改其中两个变量的值:STMLIB和TypeOfMCU。
然后在libs目录下新建Makefile文件,用于编译固件库。其中牵涉到路径的问题要根据个人的情况进行修改。
编译该库:
就会在lib目录下生成libstm32.a,这个就是编译好的静态库了。
(3)建立工程编译ld文件
这个ld文件,在编译时告诉编译器把代码放到什么地址,根据芯片的内存以及flash容量不同有所调整。
在工程根目录下新建linker.ld文件
代码较长,请到我的资源里面下载,或者查看参考pdf里面的:/detail/canyue102/6778837
这里说明需要修改的地方,根据芯片型号不同,选择相应的RAM FLASH大小。
在工程根目录下新建Makefile文件:
差不多就好了,在src里面添加测试源码
主要是startup.c 以及main.c,这里就不在说明了,可以查看该pdf或者到我的资源下载
/detail/canyue102/6778885
然后进入工程主目录,下make就好了.
然后,就完成了。