企业号介绍

全部
  • 全部
  • 产品
  • 方案
  • 文章
  • 资料
  • 企业

Tronlong创龙科技

63内容数 7015看过 30粉丝

嵌入式产品平台提供商,始终致力于打造高品质工业核心板,业务主要涵盖核心板、评估套件、项目服务

ARM平台如何玩转GDB远程调试?

09-28 113人看过

前  言

关于GDB工具

GDB工具是GNU项目调试器,基于命令行使用。和其他的调试器一样,可使用GDB工具单步运行程序、单步执行、跳入/跳出函数、设置断点、查看变量等等,它是UNIX/LINUX操作系统下强大的程序调试工具。GDB支持多种语言,包括Ada、汇编、C/C++、D、Fortran、GO、Objective-C、OpenCL、Modula-2、Pascal和Rust。

 

GDB具有一种“远程”模式,此种模式多半是在为嵌入式系统进行调试时使用,远程操作指的是:GDB在一部机器内运行,而要进行调试的程序是在另一部机器上运行,支持TCP/IP协议传输的各种网络,在TCP/IP网络及协议上再加搭传输GDB专有的调试操作通信协议,如此便能进行远程调试。

 

创龙科技已基于IMX8、ZYNQ、AM5728、AM5708、AM437x、AM335x、T3/A40i等平台提供了GDB程序调试方法说明。本文档主要演示基于TLIMX8-EVM评估板的GDB程序调试方法说明。如需其他平台相关资料,请与我们联系。
 

开发环境

Windows开发环境:Windows 7 64bit、Windows 10 64bit

虚拟机:VMware15.1.0

Linux开发环境:Ubuntu18.04.4 64bit

U-Boot:U-Boot-2020.04

Kernel:Linux-5.4.70

Linux SDK:5.4.70_2.3.0


 

硬件平台

TLIMX8-EVM评估板(NXP i.MX 8M Mini)

 

TLIMX8-EVM评估板


 

1 调试环境搭建

 

确保已搭建好NXP i.MX 8M Mini SDK开发环境。若未完成搭建,请先参照产品资料用户手册目录下的Linux开发环境搭建手册,完成SDK开发包的安装和配置。

然后进入SDK安装目录,并执行如下命令加载SDK环境变量。

Host# cd /home/tronlong/SDK/

Host# source /home/tronlong/SDK/environment-setup-aarch64-poky-linux

 

图 1

 

如环境搭建正常,执行如下命令可查看交叉编译工具版本。

Host# aarch64-poky-linux-gcc -v

 

图 2

 

2 演示程序创建与编译

 

执行如下命令,新建一个GDB调试演示程序。

Host# mkdir test

Host# cd test/

Host# gedit test.c

 

图 3

 

在tese.c文件中输入如下代码。

 

#include

void show() {

    printf("show\n");

}

int main(int argc, char *argv[])

{

    int arr[4] = {1, 2, 3, 4};

    int i = 0;

    for (i = 0; i < 4; i++) {

        printf("arr[%d]: %d\n", i, arr[i]);

    }

}

 

点击Save,保存退出。

 


 图 4

 

执行如下命令,修改test文件夹的权限。

Host# cd ..

Host# sudo chmod -R 777 test/

 

 


 图 5

 

执行如下命令加载SDK环境变量,并进行程序编译。

备注:编译时需添加-g参数,编译过程中的警告可忽略。

编译完成后,将在test文件夹目录下生成可执行文件test。

Host# cd test/

Host# source /home/tronlong/SDK/environment-setup-aarch64-poky-linux

Host# $CC -O0 -g test.c -o test

 

 图 6

 

评估板与PC机连接至同一个路由器后进行上电,执行如下命令通过网络传输的形式,将编译后的可执行文件test拷贝至评估板。

Target# ifconfig //查看评估板的IP地址

 

 

 图 7

 

Host# scp test root@192.168.0.17:/home/root //将可执行文件拷贝至评估板“/home/root/”目录下,密码为空即可

 

 

 图 8

 

Target# ls -l //查看评估板接收的可执行文件

 

 

图 9

 

3 调试程序运行

执行如下命令,确认虚拟机的IP地址。

Host# ifconfig

 

 图 10

 

在评估板文件系统test文件所在路径下,执行如下命令运行gdbserver程序,开启监听。

备注:192.168.0.83为虚拟机的IP地址;1234为连接的端口号(自行设置);test为将要进行调试的程序。如为Qt界面程序,则需在后面增加-qws参数。

Target# gdbserver 192.168.0.83:1234 test

 

 

图 11

 

在PC机test文件所在路径下,执行如下命令加载SDK环境变量,并运行GDB调试程序。

Host# source /home/tronlong/SDK/environment-setup-aarch64-poky-linux

Host# aarch64-poky-linux-gdb test //aarch64-poky-linux-gdb为SDK交叉编译环境下的GDB交叉编译工具链,test为将要进行调试的程序

 

 

图 12

 

执行如下命令,连接评估板。192.168.0.17为评估板的IP地址,请以实际情况为准。

(gdb) target remote 192.168.0.17:1234

 

 

图 13

 

同时,串口调试终端显示连接成功的相关信息。

 

图 14

 

4 程序调试

本章节主要演示GDB调试的几个常用命令的使用方法。

4.1 list命令

用于列出源码,简写:l。

 

图 15

 

4.2 break命令

用于设置断点,简写:b。

 

 

图 16

 

4.3 info breakpoints命令

用于显示断点的状态,简写:info b。

 

 

图 17

 

4.4 continue命令

用于恢复程序执行,简写:c。此命令使GDB恢复程序的执行,直至断点触发或程序结束。

 

 

图 18

 

以上调试过程在第二个断点中,每输入一次c命令,将会依次打印arr数组的元素值,然后程序执行结束。同时,串口调试终端打印相关信息。

 

 

图 19

 

4.5 print命令

用于打印变量或者变量地址,简写:p。

 

 

图 20

 

以上调试过程在每处断点中,使用print命令打印变量i的值。同时,串口调试终端打印相关信息。

 

 

图 21

 

4.6 quit命令

退出GDB模式,简写:q。当程序调试完成后,使用quit命令退出GDB调试。

 

图 22

 

同时,串口调试终端打印相关信息。

 

图 23

最近浏览过的用户(0查看全部

为你推荐

  • Xilinx ZYNQ双核ARM通信开发实例上传时间:2021-12-27 13:48

    前言:本文主要介绍基于OpenAMP框架的双核ARM通信案例的使用说明,CPU0(Master)运行Linux系统,CPU1(Remote)运行裸机或FreeRTOS程序。CPU0使用remoteproc加载CPU1程序,并对CPU1进行配置。图1OpenAMP详细开发说明可查阅官方文档。本文基于XilinxZynq-7010/7020平台进行案例测试。图21、echo_test案例1.1案例功能
  • Docker容器部署-以TI AM335x平台为例上传时间:2021-12-20 15:16

    前言:Docker是一个开源的应用容器引擎,让开发者可打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,亦可实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。使用Docker,可像管理应用程序一样管理基础结构。通过利用Docker的快速发布、测试和部署代码的方法,可显著减少产品开发时间。Docker容器适用于TIAM335x、AM437x
  • 源码免费下载!C6678+K7视频采集处理方案,这里全都有上传时间:2021-11-26 14:37

    1.为什么说DSP+FPGA架构更适合视频采集处理?高性能的算法处理,使用硬件描述语言去编写算法的话,复杂程度高,工作量大,不易调试,产品的开发周期将非常长。这时,如果为系统添加专为算法而生的DSP的话,将会事半功倍。众所周知,DSP有专门为数字信号处理所设计的指令集和流水线,可以方便高效的执行浮点数和复数运算等,这样我们的理论算法就可以很方便的移植到实际的
  • 源码公开!基于C6678+Zynq-7045的目标追踪视觉方案分享上传时间:2021-11-09 10:43

    随着现代科技的高速发展,机器视觉技术在无人机、安防监控、工业检测、ADAS高级驾驶辅助系统、医疗诊断等方面有着广泛的应用,并且更多的场合中要求能实现高算力、高速采集、高速传输。目标追踪的视觉技术是计算机视觉领域的一个重要分支课题,有着重要的研究意义。本文主要介绍基于TIC6678+XilinxZynq-7045/7100的目标追踪视觉方案。图101硬件平台推
  • 基于ZYNQ的能源电力解决方案分享上传时间:2021-10-29 11:46

    一、背景说明近年来,“工业互联网”技术在能源电力行业得到了长足发展。随着能源互联网信息一体化、电力市场售电改革、新能源微电网与储能、智能配电终端、能源四表集抄网络、电力智能巡检等概念与政策的陆续推出,能源电力行业在基于“工业互联网”的核心指导方向下,对嵌入式解决方案在上述背景下的创新应用与升级换代的需求日益旺盛。作为国内知名的嵌入式产品平台提供商,Tronlong凭借在嵌入式方案领域多年的深耕经验
  • 开源!ZYNQ IgH EtherCAT主站方案分享上传时间:2021-10-29 11:40

    前言创龙科技已基于IMX8、ZYNQ、AM5728、AM5708、AM437x、AM335x、T3/A40i等平台提供了开源EtherCAT主站IgH案例。本文主要演示TLZ7x-EasyEVM-S评估板基于IgHEtherCAT控制伺服电机方法。案例适用开发环境:Windows开发环境:Windows764bit、Windows1064bitLinux开发环境:Ubuntu14.04.364bi
  • 案例源码分享!基于Zynq-7010/7020的多路千兆网口方案上传时间:2021-10-22 09:48

    前言:本文基于以太网接口在工业场合的大量使用,特别是工业控制、仪器仪表等领域,结合XilinxZynq-7000所具备的丰富设计资源(在单芯片内集成了双核ARMCortexA9(ProcessingSystem,PS)和可编程逻辑资源(ProgrammableLogic,PL)),提供了基于Zynq-7010/7020的多路千兆网口实现方案。1硬件平台TLZ7x-EasyEVM-S评估板(Xili
  • ARM平台如何玩转GDB远程调试?上传时间:2021-09-28 18:17

    前言关于GDB工具GDB工具是GNU项目调试器,基于命令行使用。和其他的调试器一样,可使用GDB工具单步运行程序、单步执行、跳入/跳出函数、设置断点、查看变量等等,它是UNIX/LINUX操作系统下强大的程序调试工具。GDB支持多种语言,包括Ada、汇编、C/C++、D、Fortran、GO、Objective-C、OpenCL、Modula-2、Pasca
  • 官宣:创龙科技携新品入驻电子发烧友企业号上传时间:2021-09-28 09:46

    原文标题:官宣:创龙科技携新品入驻电子发烧友企业号文章出处:【微信公众号:Tronlong创龙科技】欢迎添加关注!文章转载请注明出处。
    广州创龙电子 132人看过
  • 创龙科技全志T3工业评估板 | 邮票孔2022-01-04 11:33

    产品型号:全志4核ARM Cortex-A7 处理器设计:全志科技T34核ARM Cortex-A7 主频:高达1.2GHz 通信接口:千兆网口、CAN、USB、RS485、RS232等 音视频多媒体接口:MIPI LCD、LVDS LCD、TFT LCD、HDMI 核心板采用:100%国产元器件方案
  • 创龙科技TL335x-EVM-S评估板|邮票孔2021-09-14 11:39

    产品型号:TI Sitara AM335x ARM CPU:TI Sitara AM3352/AM3354/AM3359 系列包含产品:AM3352/AM3354/AM3358/AM3359 接口资源丰富:双路千兆网口、HDMI、GPMC、CAN等接口 典型应用领域:通讯管理、数据采集、人机交互、运动控制、智能电力 主频:800MHz/1GHz
  • 创龙科技TL335x-EVM评估板2021-09-14 11:38

    产品型号:TI Sitara AM3352/54/59 ARM CPU:I Sitara AM3352/AM3354/AM3359 系列包含产品: AM3352/AM3354/AM3358/AM3359 典型应用领域: 通讯管理、数据采集、人机交互、运动控制、智能电力 处理器设计:ARM Cortex-A8 工作温度:-40°C~80℃
  • 创龙科技TLZ7x-EasyEVM-S评估板|邮票孔2021-09-09 15:30

    产品型号: Zynq-7000系列XC7Z010/XC7Z020 定位:异构多核SoC评估板 接口资源丰富:引出千兆网口、双路CAMERA、USB等接口 应用领域:测试测量、运动控制、智能电力、通信探测、目标追踪 CPU:Xilinx Zynq-7000 XC7Z010/XC7Z0 处理器设计:2x ARM Cortex-A9,2.5DMIPS/MHz
  • 创龙科技TL138F-EVM评估板2021-09-09 09:36

    产品型号:TI C6000 OMAP-L138DSP+ARM+FPGA CPU型号:TI OMAP-L138 接口资源丰富:引出网口、EMIFA、SATA、USB、LCD、VGA等接口 应用领域:运动控制、电力设备、仪器仪表、医疗设备、通信探测、惯性导航 处理器设计1:1x ARM9,主频456MHz 处理器设计2:1x DSP C674x,主频456MHz,支持浮点运算
  • 创龙科技TLIMX8-EVM评估板2021-09-09 08:43

    产品型号:NXP i.MX 8M Mini 处理器设计:4核ARM Cortex-A53 + 单核ARM Corte 主频:1.6GHz 测试验证:专业PCB Layout+高低温 接口资源:MIPI CAMERA、MIPI/LVDS LCD、HDMI 板载:WIFI模块
  • 创龙科技TLZ7x-EasyEVM评估板2021-09-08 17:13

    产品型号:Xilinx Zynq-7000 SoC 接口资源丰富:引出双路千兆网口、四路SFP+光口、CameraLink等 应用领域:软件无线电、雷达探测、光电探测、视频追踪、图像处理、水下探测 CPU:Zynq-7000XC7Z045/XC7Z100 主频:800MHz 处理器设计:2x ARM Cortex-A9,2.5DMIPS/MHz
  • 创龙科技TL570x-EVM评估板2021-09-08 15:21

    产品型号:TI Sitara AM57x DSP+ARM 定位:异构多核SoC评估板 接口资源丰富:引出双路PRU百兆网口、千兆网口、USB 3.0等接口 处理器设计:1x ARM Cortex-A15,主频1GHz CPU:TI Sitara AM5708 应用领域:运动控制、工业PC、机器视觉、智能电力、视频监测
  • 创龙科技TL6678-EasyEVM评估板2021-09-08 15:15

    产品型号:TI C6000 TMS320C6678 DSP 高性能处理器设计:8x TMS320C66x定点/浮点DSP核 接口资源丰富:引出双路千兆网口、SRIO、PCIe等高速通信接口 CPU:TI C6000 TMS320C6678 主频:1/1.25GHz 应用领域:软件无线电、雷达探测、光电探测、视频追踪、图像处理、水下探测
  • 创龙科技TL6678F-EasyEVM评估板2021-09-08 14:45

    产品型号:TI C6000 TMS320C6678+FPGA 定位:高端异构多核评估板 处理器设计:八核C66x定点/浮点DSP+FPGA 接口资源丰富:双路FMC、双路SFP+光口、双路千兆网等高速通信接口 主频:1/1.25GHz CPU:TI C6000 TMS320C6678