会飞的猪_2020 发表于 2024-1-18 19:07:02

折腾了一下在Ubuntu上用vscode开发stm32




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

用的是gcc+openocd+gdb,然后用了vscode里面的一个叫cortex-debug的插件可视化。


中间遇到一个问题,就是我环境下的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


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

eric2013 发表于 2024-1-19 08:47:14

谢谢楼主分享。

caicaptain2 发表于 2024-1-19 10:39:34

linux是嵌入式的最终归途?

l990308 发表于 2024-1-19 11:35:51

有没有教程出一个学习下

会飞的猪_2020 发表于 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。






会飞的猪_2020 发表于 2024-1-19 19:09:36

我大方向是这样的,细节部分是问ChatGPT。


1.完成程序的编译

在网上看到开源库libopencm3,发现它有一个例程的仓库https://github.com/libopencm3/libopencm3-template
这个仓库里已经写好了makefile的模版了,它的readme写的也是很简单易懂,只需要执行下面四行命令:

git clone --recurse-submodules https://github.com/libopencm3/libopencm3-template.git 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


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


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


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

2360985396 发表于 2024-1-23 10:46:28

会飞的猪_2020 发表于 2024-1-19 19:09
我大方向是这样的,细节部分是问ChatGPT。




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

会飞的猪_2020 发表于 2024-1-23 11:39:07

2360985396 发表于 2024-1-23 10:46
好兄弟有空可以做下实现的文档(具体实现的步骤 谢谢了) 我前面试过一次但是失败了

你是在哪步失败了?

FTarpa 发表于 2024-1-23 13:26:16

l990308 发表于 2024-1-19 11:35
有没有教程出一个学习下

GD32官网上有教程,包括cmake

Alo9611 发表于 2024-1-23 15:56:04

可以试试VScode的EIDE插件,配合CubeMX生成Makefile后可以开开心心的进行gcc+openocd+gdb开发,并且配置文件生成只需要点击,并不需要自己添加

l990308 发表于 2024-1-24 14:02:11

FTarpa 发表于 2024-1-23 13:26
GD32官网上有教程,包括cmake

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

JasonGu 发表于 2024-1-25 20:09:08

cortex-debug还支持RTT,配置一下就可以在vscode下面命令行里面看到实时日志了,用dap的话,应该默认就能用,不用额外连线/也不用串口
页: [1]
查看完整版本: 折腾了一下在Ubuntu上用vscode开发stm32