折腾了一下在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
这个搞定之后才最后跑了起来。
谢谢楼主分享。 linux是嵌入式的最终归途? 有没有教程出一个学习下 本帖最后由 会飞的猪_2020 于 2024-1-19 18:41 编辑
l990308 发表于 2024-1-19 11:35
有没有教程出一个学习下
没做总结。我是在网上看到一个开源的库叫https://github.com/libopencm3/libopencm3
这个库致力于给ARM芯片做开源的固件库。
然后打算用这个库玩一下。然后就跟着它的readme文档,一路安装了编译器。
中间遇到什么问题就去问ChatGPT。
我大方向是这样的,细节部分是问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这个文件。
大体的流程方向是这样的,如果遇到什么问题我们也可以交流。
会飞的猪_2020 发表于 2024-1-19 19:09
我大方向是这样的,细节部分是问ChatGPT。
好兄弟有空可以做下实现的文档(具体实现的步骤 谢谢了) 我前面试过一次但是失败了:'( 2360985396 发表于 2024-1-23 10:46
好兄弟有空可以做下实现的文档(具体实现的步骤 谢谢了) 我前面试过一次但是失败了
你是在哪步失败了? l990308 发表于 2024-1-19 11:35
有没有教程出一个学习下
GD32官网上有教程,包括cmake 可以试试VScode的EIDE插件,配合CubeMX生成Makefile后可以开开心心的进行gcc+openocd+gdb开发,并且配置文件生成只需要点击,并不需要自己添加 FTarpa 发表于 2024-1-23 13:26
GD32官网上有教程,包括cmake
找到了,谢谢
GD官网写的不是很详细,也能看了,学习了 cortex-debug还支持RTT,配置一下就可以在vscode下面命令行里面看到实时日志了,用dap的话,应该默认就能用,不用额外连线/也不用串口
页:
[1]