完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
一、原理
嵌入式系统中一般在 PC端运行 gdb工具,源码也是在 PC端,源码对应的可执行文件放到开发板中运行。为此我们需要在开发板中运行 gdbserver,通过网络与 PC端的 gdb进行通信。因此要想在 PC上通过 gdb调试嵌入式程序,那么需要两个东西:gdb和gdbserver,其中 gdb是运行在 PC上的, gdbserver需要我们移植到开发板上。 二、环境搭建 1、VSCode设置 1、给 VScode安装远程调试插件“ Remote Development”,点击“调试 ”->“打开配置”,然后选择“ C++(GDB/LLDB)”选项,然后会在 .vscode文件夹下生成launch.json文件 需要修改的内容: ①、name:调试的项目名修改后的launch.json文件如下,注意这些内容要根据自己的情况来修改,仅供参考!! { // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "gdbtest", "type": "cppdbg", "request": "launch", "program": "/home/denghengli/linux/IMX6ULL/linux_driver/0_gdbtest/gdbtest", "args": [], "stopAtEntry": false, "cwd": "/home/denghengli/linux/IMX6ULL/linux_driver/0_gdbtest", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "miDebuggerPath":"/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gdb", "miDebuggerServerAddress":"192.168.0.20:2000" } ] } 2、gdbserver安装 一般交叉编译已经自带了 gdb和 gdbserver,可以不用移植,直接使用交叉编译器自带的即可,直接将gdbserver拷贝到根文件系统的 /usr/bin 目录下,开发板启动以后通过nfs服务使用ubuntu下的跟文件系统;如果交叉编译器没有自带则需要下载源码进行安装 1、交叉编译器自带 gdbserver的安装目录: 将gdbserver拷贝到rootfs根文件系统 /usr/bin 中: sudo cp /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/gdbserver /home/denghengli/linux/nfs/rootfs/usr/bin/ 2、源码下载安装步骤 我没有用源码安装过,所以就略过了吧。。。 三、调试过程 1、将源码编译成带调试信息的可执行文件,然后拷贝到开发板上。比如在ubuntu下编写了一个gdbtest.c文件,编译完成以后将得到的gdbtest可执行文件发送到开发板中 #include #include int main(int argc, char *argv[]) { unsigned int times = 0; while (1) { printf("runging times: %d rn", times); times++; sleep(1); } } 编译: arm-linux-gnueabihf-gcc gdbtest.c -o gdbtest -g //编译测试程序,注意 -g选项 拷贝至rootfs根文件系统下(开发板启动以后通过nfs服务使用ubuntu下的跟文件系统): sudo cp gdbtest /home/denghengli/linux/nfs/rootfs/lib/modules/4.1.15/ 2、在开发板中,启动gdbserver并执行要调试的执行文件 gdbserver 192.168.0.107:2000 gdbtest //启动开发板上的 gdbserver 192.168.0.107为指定的ubuntu主机ip 3、点击 VSCode上的“调试” ”->“启动调试”按钮开启调试 4、控制程序运行 |
|
|
|
只有小组成员才能发言,加入小组>>
793 浏览 0 评论
1152 浏览 1 评论
2528 浏览 5 评论
2861 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2711 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1072浏览 3评论
195浏览 2评论
457浏览 2评论
370浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
455浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 02:56 , Processed in 1.174654 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号