mac下搭建stm32开发环境

发布者:温馨小屋最新更新时间:2021-08-13 来源: eefocus关键字:mac  搭建  stm32  开发环境 手机看文章 扫描二维码
随时随地手机看文章

一、STM32CubeMX

1. java环境

直接使用brew安装openjdk 8:

brew install openjdk@8


配置jdk环境:

sudo ln -sfn /usr/local/opt/openjdk@8/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-8.jdk

/usr/libexec/java_home


配置完成后检查java环境:

java -version

2. 安装stm32cubemx

官方下载:https://www.st.com/en/development-tools/stm32cubemx.html

下载之后解压,双击进行安装,若出现“mac无法验证开发者”,解决方案(注意文件路径):

sudo xattr -cr ~/develop/mcu/SetupSTM32CubeMX-6.2.1.app


执行之后再次运行,可以正常安装:

一路next,安装完成,在菜单栏即可看到stm32cubemx图标,点击运行,然后添加到扩展坞。


此时就可以将之前解压出的zip安装包删除啦。

生成一个 led 的工程,参考教程:STM32CubeMX | 03-使用GPIO点亮一个LED。

最后选择生成makefile工程即可:

二、VSCode

直接在官网下载安装。

VSCode是以文件夹作为工作区的,首先将VSCode的命令注册环境变量中,然后在stm32cubemx生成的工程目录中使用命令即可在vscode中打开:

code .

三、安装编译工具链

1. 编译工具链

编译工具使用 arm-none-eabi-gcc 工具链。

在官方下载:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads


下载之后解压,将解压后的文件夹挪到一个自己喜欢的位置,重命名为gcc-arm-none-eabi。

其中的bin目录下存放的是各种编译工具,将其添加到用户环境变量中:


vim ~/.zshrc


在其最后添加环境变量:


export PATH=/Users/mculover666/develop/toolchains/gcc-arm-none-eabi/bin:$PATH


关掉所有终端,重新打开,输入arm,双击tab,根据是否可以自动补全可判断是否添加成功:

2. 构建工具

构建工具使用make,我默认的环境中已经有make工具,无需再安装:

如果没有,可以安装gcc,make工具包含在gcc工具链中。


3. 编译测试

有了arm-none-eabi-gcc和make工具链后,就可以尝试编译刚刚使用stm32cubemx生成的makefile工程了。


进入cubemx生成工程的根目录:

cd /Users/mculover666/develop/mcu/stm32l431rc-bearpi/project/ledblink

直接编译:


make


哦豁,mac又无法验证app,只好再对整个工具链目录给一下权限:


cd /Users/mculover666/develop/toolchains

sudo xattr -cr ./gcc-arm-none-eabi/*


好啦,再回来编译一下,编译成功:

四、下载工具

1. 安装openocd

下载工具使用openocd。

直接使用brew安装:

brew install openocd


安装完毕后检查openocd版本:

2. openocd使用方法

openoc安装位置在 /usr/local/share/openocd 下,进入openocd安装目录下的script文件夹查看:

其中interface文件夹下存放的是openocd支持的下载器:

target下存放着目标芯片的配置文件:

连接目标芯片:

openocd -f /usr/local/share/openocd/scripts/interface/stlink-v2-1.cfg -f /usr/local/share/openocd/scripts/target/stm32l4x.cfg


安装telnet:


brew install telnet


使用telnet连接:


telnet localhost 4444

复位:


reset


停机


halt


下载:


flash write_image erase /Users/mculover666/develop/mcu/stm32l431rc-bearpi/project/ledblink/build/ledblink.bin 0x08000000


3. 一行命令搞定下载

以上这些繁琐的过程,可以永恒一行命令搞定,将其添加到stm32cubemx生成的makefile中,非常方便:


download:

openocd -f /usr/local/share/openocd/scripts/interface/stlink-v2-1.cfg -f /usr/local/share/openocd/scripts/target/stm32l4x.cfg -c init -c reset -c halt -c "flash write_image erase $(shell pwd)/$(BUILD_DIR)/$(TARGET).bin 0x08000000" -c reset -c shutdown 


接着使用命令完成下载:


make download


五、串口终端

1. 安装minicom

串口终端使用minicom,通过brew安装:


登录后复制

brew install minicom

2. 配置minicom

首先使用命令查看挂载到mac上的串口设备:

ls /dev/tty.usbmodem*


接着对minicom进行配置:

sudo minicom -s

选择串口设置:

配置串口设备名称和基本参数(按配置项前的字母,按下哪个设置哪个):

配置完成后点击回车,选择保存为默认,退出。

3. 使用minicom

进入minicom的命令为:

sudo minicom1.


minicom的功能很强大,如有兴趣可以自行探索~


关键字:mac  搭建  stm32  开发环境 引用地址:mac下搭建stm32开发环境

上一篇:STM32CubeMX | 31-使用硬件FMC读写SDRAM(W9825G6KH)
下一篇:STM32CubeMX | 42 - 使用DMA2D加速显存数据传输

推荐阅读最新更新时间:2024-11-08 10:29

STM32之系统时钟基定时器
STM32F10x内核中都具有一个系统时钟基定时器,是一个24位的递减计数器。在其设置处置并使能后,每经过一个系统时钟周期,计数值减1.档计数值减到0时系统时基定时器又会自动重载初值。 系统时基定时器每10ms就会产生一次中断。 接下来主要介绍库函数。 1.SysTick_CLKSourceConfig函数的功能是设置SysClock的时钟源。其中输入参数为SysTick_CLKSource:SysTick时钟源 参数可取的值为:SysTick_CLKSource_HCLK_Div8;SysTick_CLKSource_HCLK.表示SysTick时钟源为AHB时钟除以8和AHB时钟源。 例:设置系统定时器时钟为AHB时钟。 Sy
[单片机]
如何用STM32CubeIDE软件实现STM32外部中断
本文用STM32CubeIDE软件实现STM32外部中断实例。 新建工程 “File”-“New”-“STM32 Project”。 输入芯片型号STM32F103ZE。 选择相应封装,下一步。 填写项目名,选择工程位置,下一步。 配置时钟、调试模式 选择高速外部时钟。 HCLK总线时钟处输入72,回车,配置使用最高时钟频率。 调试模式选择串行,方便下载程序。 配置管脚外设 本实例中用到了LED1与KEY_LEFT,找到相应电路图。 可见LED1对应PC0管脚,低电平点亮。按键K1对应PE2管脚,低电平有效。 PC0配置为GPIO_Output,GPIO输出模式 PE2配置为GPIO_EX TI 2,GPIO中断线2。 对G
[单片机]
如何用STM32CubeIDE软件实现<font color='red'>STM32</font>外部中断
stm32_015_stm32工程设置程序下载到flash中
1.选择对应cpu型号 2.设置程序的存储地址和预留大小(不能超过总大小),还有设置RAM的地址和大小。 3.设置输出hex文件 4.安装好j-link驱动后,设置debug选项 5.设置Utilities选项 至此,变可以下载或者debug了。
[单片机]
stm32_015_stm32工程设置程序下载到flash中
解析STM32的库函数-1
一、引言 我们在学习32的过程中,固件库是个必不可少的东西,因为程序开发不再是从寄存器层次起始,而要首先去熟悉 STM32 所提供的固件库。那是否一定要使用固件库呢?当然不是。但 STM32 微控制器的寄存器规模可不 是常见的 8 位单片机可以比拟,若自己细细琢磨各个寄存器的意义,必然会消耗相当的时间, 并且对于程序后续的维护,升级来说也会增加资源的消耗。 二、正题 以最常用的 GPIO 设备的初始化函数为例,如下程序段一: GPIO_InitTypeDef GPIO_InitStructure; ○1 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; ○2 GPIO_InitS
[单片机]
STM32 八路AD转换用DMA传输调试成功,DMA传输不错位
// // #include stm32f10x_conf.h //把DMA.h和ADC.h 的注释去掉 #include stm32f10x.h #include stm32_eval.h #include #define N 50 //每通道采50次 #define M 8 //为8个通道 #define ADC1_DR_Address ((u32)0x4001244C) vu16 After_filter ; //用来存放求平均值之后的结果 vu16 AD_Value ; //用来存放ADC转换结果,也是DMA的目标地址
[单片机]
基于ARM+FPGA的可重构MAC协议的设计与实现
0 引言 基于CSMA/CA的MAC协议的优势在于其简单和健壮性,适用于分布式网络,每个节点无需维持和动态更新周围相邻节点的状态信息,可以独自决定何时接入信道,只要上层有数据需要传输,MAC层就会对信道进行竞争,因此该协议的应用也相当广泛。嵌入式技术的发展对MAC协议的实现也提供了很好的技术支撑。本文搭建了一种基于ARM和FPGA相结合的嵌入式开发平台,并在此基础上设计与实现了基于CSMA/CA的MAC协议。由于ARM和FPGA本身就是可重构器件,同时将FPGA中的一些协议参数由ARM来设置,通过修改ARM的代码就可以实现对FPGA中协议功能的调整,方便快捷,不再需要重新生成比特文件下载,有利于MAC协议可重构的实现。 1 协议
[单片机]
基于ARM+FPGA的可重构<font color='red'>MAC</font>协议的设计与实现
STM32开发环境】Linux下开发stm32(三) | 寄存器工程开发
先来回顾一下,前两篇 Linux下开发stm32(一) | 使用gcc-arm-none-eabi工具链编译 和 Linux下开发stm32(二) | 使用openocd下载与调试 中,我们介绍了如何创建一个空的裸机工程(只有启动文件和main文件),并编译工程生成elf文件,然后将其转为bin格式或hex格式,使用openocd下载,最后编写了一个makefile雏形,并成功点亮了一个LED~ 但是这个LED我们是通过指针直接操作寄存器地址来完成的,接下来,我们在此基础上,引入stm32头文件,其中包含了寄存器的宏定义,也就是使用寄存器进行开发~ 1.创建寄存器工程 首先将上一节中创建的裸机工程00-template-re
[单片机]
【<font color='red'>STM32</font><font color='red'>开发环境</font>】Linux下开发<font color='red'>stm32</font>(三) | 寄存器工程开发
STM32 cannot enter debug mode错误
调试STM32时,MDK环境,有的代码下进去后,突然以后再Debug的时候,就会出现:Cannot enter Debug Mode ,显示错误Error:Flash Download failed-Target DLL has been cancalled. 可以尝试着用ISP方式,将片上的FLASH全部擦掉就OK了。 使用先设置跳线boot0 = 1,boot1=0。然后连上串口线,波特率默认即可,读STM32的器件信息,再擦除。。。
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved