硬汉嵌入式论坛

 找回密码
 立即注册
查看: 883|回复: 11
收起左侧

[其它] 折腾了一下在Ubuntu上用vscode开发stm32

  [复制链接]

39

主题

203

回帖

330

积分

高级会员

积分
330
发表于 2024-1-18 19:07:02 | 显示全部楼层 |阅读模式
1.gif


折腾了一下,效果如图。可以看到变量,寄存器,打断点。

用的是gcc+openocd+gdb,然后用了vscode里面的一个叫cortex-debug的插件可视化。
Snipaste_2024-01-18_19-00-05.png

中间遇到一个问题,就是我环境下的openocd需要sudo才能正常使用usb的权限。而cortex-debug这个插件它自己去调openocd的时候前面是不加sudo的,我一直失败。

后来看到github的issue里面有别人提到这个问题。https://github.com/Marus/cortex-debug/issues/910
他们认为添加sudo是不对的,也不计划添加,不过给出了解决方案。https://elinux.org/Accessing_Devices_without_Sudo


这个搞定之后才最后跑了起来。

评分

参与人数 1金币 +100 收起 理由
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107262
QQ
发表于 2024-1-19 08:47:14 | 显示全部楼层
谢谢楼主分享。
回复

使用道具 举报

335

主题

2040

回帖

3050

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3050
发表于 2024-1-19 10:39:34 | 显示全部楼层
linux是嵌入式的最终归途?
回复

使用道具 举报

2

主题

32

回帖

38

积分

新手上路

积分
38
发表于 2024-1-19 11:35:51 | 显示全部楼层
有没有教程出一个学习下
回复

使用道具 举报

39

主题

203

回帖

330

积分

高级会员

积分
330
 楼主| 发表于 2024-1-19 18:25:12 | 显示全部楼层
本帖最后由 会飞的猪_2020 于 2024-1-19 18:41 编辑
l990308 发表于 2024-1-19 11:35
有没有教程出一个学习下

没做总结。我是在网上看到一个开源的库叫https://github.com/libopencm3/libopencm3
这个库致力于给ARM芯片做开源的固件库。

然后打算用这个库玩一下。然后就跟着它的readme文档,一路安装了编译器。

中间遇到什么问题就去问ChatGPT。






回复

使用道具 举报

39

主题

203

回帖

330

积分

高级会员

积分
330
 楼主| 发表于 2024-1-19 19:09:36 | 显示全部楼层
我大方向是这样的,细节部分是问ChatGPT。


1.完成程序的编译

在网上看到开源库libopencm3,发现它有一个例程的仓库https://github.com/libopencm3/libopencm3-template
这个仓库里已经写好了makefile的模版了,它的readme写的也是很简单易懂,只需要执行下面四行命令:
[C] 纯文本查看 复制代码
git clone --recurse-submodules [url]https://github.com/libopencm3/libopencm3-template.git[/url] your-project
cd your-project
make -C libopencm3 # (Only needed once)
make -C my-project


当然编译 需要用到toolchain了,看到libopencm3主仓库https://github.com/libopencm3/libopencm3推荐的是https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain
然后问一下ai怎么安装,怎么验证安装成功了。

安装成功后,再跑一下刚才的那四行命令,嗯很好,能够正常编译。

2.实现程序下载
编译好了,但是例程是f429,我手头上不是这个。需要修改一下
在它的makefile里面也写了,需要修改下面两行的代码,新增一个board文件夹放openocd的cfg。
我用h7tool+v7的开发板,用截图里的配置是可以的编译下载的。在my-project的文件夹里面make flash
Snipaste_2024-01-19_19-02-55.png

3.然后就是gdb调试,实际上已经可以调试了。我截图的时候没有连dap-link,示意图如下:
2.gif

4.然后就是用cortex-debug插件把它们统一起来,可视化调试。
https://github.com/Marus/cortex-debug
读一下readme,然后细节问题问ChatGPT,就是配置一下launch.json这个文件。


大体的流程方向是这样的,如果遇到什么问题我们也可以交流。
回复

使用道具 举报

23

主题

67

回帖

136

积分

初级会员

积分
136
发表于 2024-1-23 10:46:28 | 显示全部楼层
会飞的猪_2020 发表于 2024-1-19 19:09
我大方向是这样的,细节部分是问ChatGPT。

好兄弟有空可以做下实现的文档(具体实现的步骤 谢谢了) 我前面试过一次但是失败了
回复

使用道具 举报

39

主题

203

回帖

330

积分

高级会员

积分
330
 楼主| 发表于 2024-1-23 11:39:07 | 显示全部楼层
2360985396 发表于 2024-1-23 10:46
好兄弟有空可以做下实现的文档(具体实现的步骤 谢谢了) 我前面试过一次但是失败了

你是在哪步失败了?
回复

使用道具 举报

1

主题

17

回帖

20

积分

新手上路

积分
20
发表于 2024-1-23 13:26:16 | 显示全部楼层
l990308 发表于 2024-1-19 11:35
有没有教程出一个学习下

GD32官网上有教程,包括cmake
回复

使用道具 举报

7

主题

9

回帖

30

积分

新手上路

积分
30
发表于 2024-1-23 15:56:04 | 显示全部楼层
可以试试VScode的EIDE插件,配合CubeMX生成Makefile后可以开开心心的进行gcc+openocd+gdb开发,并且配置文件生成只需要点击,并不需要自己添加
回复

使用道具 举报

2

主题

32

回帖

38

积分

新手上路

积分
38
发表于 2024-1-24 14:02:11 | 显示全部楼层
FTarpa 发表于 2024-1-23 13:26
GD32官网上有教程,包括cmake

找到了,谢谢
GD官网写的不是很详细,也能看了,学习了
回复

使用道具 举报

2

主题

20

回帖

26

积分

新手上路

积分
26
发表于 2024-1-25 20:09:08 | 显示全部楼层
cortex-debug还支持RTT,配置一下就可以在vscode下面命令行里面看到实时日志了,用dap的话,应该默认就能用,不用额外连线/也不用串口
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-23 12:08 , Processed in 0.305925 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表