完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本文介绍如何在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调试了: |
|
|
|
只有小组成员才能发言,加入小组>>
2554 浏览 0 评论
1153浏览 2评论
752浏览 1评论
505浏览 0评论
269浏览 0评论
434浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 04:43 , Processed in 1.691885 second(s), Total 78, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号