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-17 01:36

STM32-自学笔记(2.ARMCortex-M3内核构架)
Cortex-M3 的CPU:32位CPU cpu的两种运行模式:线程模式(Thread)和处理模式(Handler)。 cpu不处理异常事件时,会运行在线程(Thread)模式下。而当cpu需要处理一个异常事件时,就会切换到处理(Handler)模式下。 此外 Cortex-M3的cpu还有两种处理代码的方式:私有模式和非私有模式。 私有模式下,cpu可以执行所有指令。 非私有模式下,部分指令是被禁止执行的(xPSR寄存器操作的MRS和MSR指令)。同时也不能对cpu的系统控制区中的寄存器进行进行操作。 另外,堆栈的使用也是可以设置的,主堆栈在线程模式和处理模式下都可以使用。通过设置,Handler模式也可以使用进程堆
[单片机]
STM32固件库3.3版本在STM3210e-eval开发板上的移植
首先建立工程,我习惯性在工程文件夹下建立以下几个文件夹,分别放不同的文件,以区别不同文件的不同作用,方便寻找和移植。如下: 在PROJECT文件夹下建立工程项目,启动keil,开始建立工程。 注意建立在PROJECT文件夹下。 随便起个名字,我起的名字是MDK,建立后,会提示你选择器件型号 我的器件如上图,所以选择。确定后会询问你是否加入启动文件。我们用stm32的固件库,所以不用mdk的,选择否。 下面配置工程的选项option,右键点Target会看到Options。 以下是各个选项卡的配置内容。 这里注意的是在output选项卡里要选择目标文件存放的位置,
[单片机]
<font color='red'>STM32</font>固件库3.3版本在STM3210e-eval开发板上的移植
ulink下在ram中调试stm32的方法
1.在项目文件夹 新建 RAM.ini ---------------------------------------------------------------- FUNC void Setup (void) { SP = _RDWORD(0x20000000); // 堆栈指针 PC = _RDWORD(0x20000004); // PC _WDWORD(0xE000ED08, 0x20000000); // 中断向量偏移地址 } LOAD ./basic.axf INCREMENTAL // Download,.axf 根据自己的文件名和目录修改 Setup();
[单片机]
ulink下在ram中调试<font color='red'>stm32</font>的方法
智林STM32程序源代码的分析和整理04
一、定时器的配置 1、概述 STM32的定时器功能比较多、配置也较复杂,我现在了解不多,边用边学吧。智林开发板上有两个用定时器的地方,一个是液晶的背光电源,要求输出一定的PWM波形,用于整流提供电源;二是用于控制喇叭,也是时钟脉冲输出。 定时器首先的选择是计数、还是定时,我这里用的都是定时,输出模式可以是输入时定时器的捕获,可以是比较匹配时设定输出(经常用到这一种)。 2、源程序 void TIMx_Config(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; //时基单元配置数据结构 TIM_OCInitTypeDef TIM_OCInitStr
[单片机]
基于STM32实现MQTT
1、MQTT协议 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的 轻量级 通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。 协议详情: MQTT Version 3.1.1(英文版) (中文版) 2、STM32实现的自我理解 既然是一个协议,所以有一个基本的物理网络
[单片机]
基于<font color='red'>STM32</font>实现MQTT
stm32库中地址映射
一、预备知识 在编写ARM9裸机的程序时,读写某个寄存器可用如下代码实现: 例如,要读写UART_ULCON1寄存器的值,查找ARM9的用户手册就可已得到该寄存器地址。 #define UART_ULCON1 (volatile unsigned int *)(0x50004000) 写寄存器: *UART_ULCON1 = 0X00FF; 读寄存器: unsigned int temp; temp = *UART_ULCON1; 二、stm32库中地址映射 在stm32用户手册中找不到绝对的寄存器地址,需要进行换算。例如要找GPIOA中GPIOA_CRL寄存器地址: 第一步:在stm32f10x_reference文档中可查找到
[单片机]
关于STM32宏定义的产品类型名称解释
startup_stm32f10x_ld_vl.s: for STM32 Low density Value line devices startup_stm32f10x_ld.s: for STM32 Low density devices startup_stm32f10x_md_vl.s: for STM32 Medium density Value line devices startup_stm32f10x_md.s: for STM32 Medium density devices startup_stm32f10x_hd.s: for STM32 High density devices startup_stm32f
[单片机]
STM32 启动流程的详细讲解
开发环境: 处理器:STM32F103 MDK:5.30 STM32CubeMX:6.0.1 对于我们常用的桌面操作系统而言,我们在开发应用时,并不关心系统的初始化,绝大多数应用程序是在操作系统运行后才开始运行的,操作系统已经提供了一个合适的运行环境,然而对于嵌入式设备而言,在设备上电后,所有的一切都需要由开发者来设置,这里处理器是没有堆栈,没有中断,更没有外围设备,这些工作是需要软件来指定的,而且不同的CPU类型、不同大小的内存和不同种类的外设,其初始化工作都是不同的。本文将以STMF103(基于Cortex-M3)为例进行讲解。 在开始正式讲解之前,你需要了解ARM寄存器、汇编以及反编译相关的知识,这些可以参考笔者
[单片机]
<font color='red'>STM32</font> 启动流程的详细讲解
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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