单片机交流
登录
直播中
小组店小二
9年用户
875经验值
擅长:可编程逻辑 电源/新能源 MEMS/传感技术 测量仪表 嵌入式技术 制造/封装 模拟技术 连接器 EMC/EMI设计 光电显示 存储技术 EDA/IC设计 处理器/DSP 接口/总线/驱动 控制/MCU RF/无线
私信
关注
[问答]
如何在linux虚拟机上使用GUN工具链搭建stm32开发环境?
开启该帖子的消息推送
Linux
如何在linux虚拟机上使用GUN工具链搭建
STM32
开发环境?
回帖
(1)
韩志保
2021-11-5 10:46:43
本文介绍如何在linux虚拟机上使用GUN工具链搭建stm32开发环境,下面是几点说明:
(1)使用虚拟机软件是virtualbox,linux版本是64bit Centos7,虚拟机已经安装增强功能。
(2)windows物理机上已经安装stlink v2的驱动,官方可以下载
https://www.st.com/en/development-tools/st-link-v2.html#tools-software
(3)使用的开发板是向腾讯申请的EVB_MX+开发板,芯片是stm32L431,利用的工程是Tencentos tiny官方工程GCC版本,Makefile已经配好,感谢腾讯,感谢马老板。
Tencentos tiny官方:
https://github.com/Tencent/TencentOS-tiny.git
1、下载安装gnu arm嵌入式工具链
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
我下载的是下面这个
解压到linux,配置好环境变量,打开命令行工具,输入arm-none-eabi- ,再按tab出现很多软件,表明配置成功。其中arm-none-eabi-gcc是编译器,arm-none-eabi- gdb是调试器。
2、安装openocd
下载地址(如果打不开,需要科学上网)
https://github-production-release-asset-2e65be.s3.amazonaws.com/40920267/f97e76a0-f7c1-11e7-8fad-94f5d5d1497f?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200207%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200207T140751Z&X-Amz-Expires=300&X-Amz-Signature=05fcec7568a4fc8cd265e824a7db6ae8d69e804c4175db73ab0de974d8b834fa&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dgnu-mcu-eclipse-openocd-0.10.0-6-20180112-1448-centos64.tgz&response-content-type=application%2Foctet-stream
同样是解压,添加环境变量:
3、make
直接在工程Makefile所在文件夹,make之后,会生成三个二进制文件,我这里分别是,Tencentos_tiny.hex Tencentos_tiny.bin Tencentos_tiny.elf。
4 使用openocd通过stlink连接单片机
在连接之前,我们需要把win10的stlink u***共享给虚拟机
检查一下linux的u***设备,会发现设备已经共享:
$lsu***
连接单片机之前,我们需要明确单片机的型号,我们这里是stm32L4系列,我们输入:(查看具体的.cfg文件,可以到opocd目录下的scripts/target文件夹查找)
$openocd -f interface/stlink-v2.cfg -f target/stm32l4x.cfg
显示上面的信息,说明连接成功。
5 下载.hex文件到单片机
再打开一个Terminal(第4步的terminal不要关),通过tcp/4444端口下载.hex文件到芯片的flash。输入:
$telnet localhost 4444
分别输入以下三个命令:
$halt$flash write_image erase TencentOS_tiny.hex$reset 其中第二条命令的.hex需要改为自己的二进制文件。
通过串口工具,可以看到reset之后,程序可以在运行:
6 使用GDB调试
类似于步骤4和5,首先用stlink连接单片机:
$openocd -f interface/stlink-v2.cfg -f target/stm32l4x.cfg 然后打开另外一个窗口执行:
$arm-none-eabi-gdb TencentOS_tiny.elf
执行:
$target remote localhost:3333 再分别执行:
$monitor reset$monitor halt$load
下面就可以用gdb调试了:
本文介绍如何在linux虚拟机上使用GUN工具链搭建stm32开发环境,下面是几点说明:
(1)使用虚拟机软件是virtualbox,linux版本是64bit Centos7,虚拟机已经安装增强功能。
(2)windows物理机上已经安装stlink v2的驱动,官方可以下载
https://www.st.com/en/development-tools/st-link-v2.html#tools-software
(3)使用的开发板是向腾讯申请的EVB_MX+开发板,芯片是stm32L431,利用的工程是Tencentos tiny官方工程GCC版本,Makefile已经配好,感谢腾讯,感谢马老板。
Tencentos tiny官方:
https://github.com/Tencent/TencentOS-tiny.git
1、下载安装gnu arm嵌入式工具链
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
我下载的是下面这个
解压到linux,配置好环境变量,打开命令行工具,输入arm-none-eabi- ,再按tab出现很多软件,表明配置成功。其中arm-none-eabi-gcc是编译器,arm-none-eabi- gdb是调试器。
2、安装openocd
下载地址(如果打不开,需要科学上网)
https://github-production-release-asset-2e65be.s3.amazonaws.com/40920267/f97e76a0-f7c1-11e7-8fad-94f5d5d1497f?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200207%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200207T140751Z&X-Amz-Expires=300&X-Amz-Signature=05fcec7568a4fc8cd265e824a7db6ae8d69e804c4175db73ab0de974d8b834fa&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dgnu-mcu-eclipse-openocd-0.10.0-6-20180112-1448-centos64.tgz&response-content-type=application%2Foctet-stream
同样是解压,添加环境变量:
3、make
直接在工程Makefile所在文件夹,make之后,会生成三个二进制文件,我这里分别是,Tencentos_tiny.hex Tencentos_tiny.bin Tencentos_tiny.elf。
4 使用openocd通过stlink连接单片机
在连接之前,我们需要把win10的stlink u***共享给虚拟机
检查一下linux的u***设备,会发现设备已经共享:
$lsu***
连接单片机之前,我们需要明确单片机的型号,我们这里是stm32L4系列,我们输入:(查看具体的.cfg文件,可以到opocd目录下的scripts/target文件夹查找)
$openocd -f interface/stlink-v2.cfg -f target/stm32l4x.cfg
显示上面的信息,说明连接成功。
5 下载.hex文件到单片机
再打开一个Terminal(第4步的terminal不要关),通过tcp/4444端口下载.hex文件到芯片的flash。输入:
$telnet localhost 4444
分别输入以下三个命令:
$halt$flash write_image erase TencentOS_tiny.hex$reset 其中第二条命令的.hex需要改为自己的二进制文件。
通过串口工具,可以看到reset之后,程序可以在运行:
6 使用GDB调试
类似于步骤4和5,首先用stlink连接单片机:
$openocd -f interface/stlink-v2.cfg -f target/stm32l4x.cfg 然后打开另外一个窗口执行:
$arm-none-eabi-gdb TencentOS_tiny.elf
执行:
$target remote localhost:3333 再分别执行:
$monitor reset$monitor halt$load
下面就可以用gdb调试了:
举报
更多回帖
rotate(-90deg);
回复
相关问答
Linux
虚拟机
的
Linux
下
搭建
环境
,执行到‘设置
工具
’的时候总是报错,请问这个要怎么解决?
2023-02-17
170
如何
搭建
qt
开发
环境
?
2022-01-06
1091
如果不安装
虚拟机
,该如何进行
环境
搭建
?
2022-01-04
930
开发
板如何通过
虚拟机
文件共享功能,运行
虚拟机上
linux
下的程序
2016-03-20
7699
8MM和8MQ的
Linux
开发
环境
是否通用
2021-12-30
1778
请问8MM与8MQ
开发
环境
是否通用?
2022-01-13
937
OKMX6DL_Q QT5.6
Linux
4.1.15
开发
环境
-
虚拟机
Ubuntu镜像,下载完的
虚拟机
镜像不对怎么解决?
2022-11-30
199
A40i板子
linux
如何
搭建
交叉编译
环境
呢
2022-01-04
1705
如
何在
Linux
上
搭建
Melis3.0
开发
环境
?
2021-12-29
1617
rk3399pro的
开发
问题
2022-07-06
2087
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分