开拓STM32时,我们有IDE可以用,IDE中已经集成有调试器,合营仿真器利用起来很方便。而在Linux运用程序的开拓中,常常直接在命令行利用gdb进行调试,或者可以利用VSCode+gdb进行调试。
gdb调试干系文章:GDB调试器原来那么大略
而在嵌入式Linux中,我们如何对开拓板上的arm程序进行调试呢?

我们可以利用VSCode+gdb+gdbserver来调试我们arm开拓板上的arm程序。下面大略先容一下利用方法,条件是开拓板与PC可以进行无线/有线通信。
1、准备arm格式的gdb及gdbserver工具一样平常交叉编译工具链里都包含有,如果没有则须要自己下载gdb源码进行交叉编译,gdb下载源码下载链接:
http://www.gnu.org/software/gdb/download/
涉及到交叉编译的文章:
实用 | 一个高性能通信库的大略利用分享
protobuf-c在嵌入式Linux平台的利用实例分享
这里我利用的是交叉编译工具链里的gdb及gdbserver,如:
2、创建launch.json文件并修正我们须要创建vscode的launch.json文件并进行一些修正:
个中须要修正"program",这是我们须要调试的程序,即我们交叉编译好的程序。还须要添加如下两个键值对:
"miDebuggerPath:"/opt/rv1126/bin/arm-linux-gnueabihf-gdb""miDebuggerServerAddress":"192.168.3.12:9001"
个中,miDebuggerPath表示的是arm格式gdb的路径;miDebuggerServerAddress表示的是我们server真个地址,如:192.168.3.12为开拓板的ip,9001为端口号,可自行设置,其范围为:0~65536,0~1023 的端口一样平常由系统分配给特定的做事程序。
3、把gdbserver传到开拓板上我们须要交叉编译器路径下的gdbserver传到开拓板上,如我这里放到开拓板的/usr/bin路径下:
4、启动gdbserver
我们首先须要启动开拓板上的gdbserver,pc端才能连接进行调试,格式为:
gdbserver 开拓板ip:端口号 要调试的程序
如:
5、启动vscode的gdb进行调试
末了,启动vscode的gdb即可进行调试。如:
猜你喜好:
分享一些可以快速入门的嵌入式教程
union在嵌入式中的一种实用运用
1024G 嵌入式资源大放送!
包括但不限于C/C++、单片机、Linux等。私信回答1024,即可免费获取!