在MAC上搭建STM32开发平台_

时间:2024-03-07 14:23:59

转:http://blog.sina.com.cn/s/blog_68eaa6e70102xhms.html

安装STM32CubeMX

1.下载地址 http://www.st.com/zh/development-tools/stm32cubemx.html
2.用STM32CubeMX新建工程,生成代码,此处注意对应平台 MakeFile

安装编译工具链

在终端使用 brew cask install gcc-arm-embedded
这会将编译工具软链接到 /usr/local/bin 中

修改STM32CubeMx生成的代码

1.修改编译工具位置

打开生成工程中的MakeFile文件,修改变量BINPATH 为我们安装的编译工具的目录/usr/local/bin(默认为空)如下图
(崩溃,无法上传图片)

2.STM32CubeMX导出的makefile文件有错误

参考此博客http://blog.csdn.net/ailikez/article/details/79154972
错误表现为在编译过程中会报 multiple defination(重复定义)错误;
修改方法:更改makefile文件中的变量 C_SOURCES,默认生成的文件中,此变量里面包含的c文件有重复的,删除重复即可

自定义修改工程

stm32CubeMX只是帮我们建立工程,并将用到的硬件初始化,具体要实现的功能要自己写,可以用代码编辑软件(比如VS code)进行编辑,如果添加C文件和H文件,要同时修改makefile文件

编译工程

在终端中转到工程目录,使用 make 命令安装makefile的规则编译工程,默认会在工程中建立build目录,并在build中生成.o(中间过程文件).bin .elf .hex .bin 文件
.hex .bin文件是最后需要下载到单片机中的,在mac上我们需要的.bin 文件。

烧写文件到单片机

此处有两种方法,JLink和StLink;
公司中只有JLink,所以这次使用的JLink;
好像不管JLink还是STlink,mac都集成驱动

JLink

在JLink官网下载mac版JLink配套软件
https://www.segger.com/downloads/jlink/
安装之后,默认会在/Applications里面,并且软链接到/usr/local/bin中,所以可以移动位置,比如移动到STM32CubeMX的目录下,然后更新软链接。
烧写命令,在终端下执行 JLinkExe -device (芯片名字) 比如STM32F103C8
然后进入JLink自带的shell下,开头是 jlink->
然后首先需要与板子建立通信,按照提示 输入 connect 然后按提示操作 回车代表执行默认
建立连接后,就可以烧写了,使用如下命令:loadbin xxx.bin(编译得到的文件) 0x8000000(芯片中flash开始的地址,可以查看工程目录下的 形如STM32F103C8Tx_FLASH.ld文件中有记录。
结束。

Stlink

这个只需要使用芯片的usart1连接的stlink,然后下载开源st-flash工具,可以用homebrew安装,执行如下命令: brew install stlink
安装后,只需要使用烧写命令:st-flash write xx.bin 0x8000000
结束。