【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序

gdbserver远程调试流程

  • 首先保证电脑能够网络访问开发板(参考第三节进行网络配置)
  • 使用passwd命令,为root账号设置密码
  • 将希望调试的程序拷贝到开发板中
  • 为程序添加可执行权限 chmod 777 hello_world
  • 在DS-5软件里面设置调试相关配置,在菜单栏选择Run->Debug Configurations打开配置界面
    • Debugger:gbdserver
    • 选择gdb.exe
    • Connection:TCP、IP
  • 在开发板上输入以下命令启动调试:gdbserver :10000 hello_world
  • 在DS-5里面点击debug开始调试
    • 断点、查看变量、单步运行

参考教程中的以下章节
【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第1张图片


一、编写测试程序

编写mian.c如下

#include 

int main(int argc, char* argv[])
{
	int a=1, b=2, c=3;

	printf("Hello World\r\n");

	c = a+b;
	b++;
	c = c+b;

	printf("c=%d\r\n", c);

	return 0;
}

二、DS-5配置

点击菜单栏的Run选项,然后选择其中的Debug Configurations…,如下图所示

【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第2张图片

双击其中的C/C++ Application,会自动识别到hello_world程序
【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第3张图片
选择Debugger标签,

【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第4张图片

然后选择下方的Select other…

【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第5张图片

然后选择Change Workspace Settings
【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第6张图片
点击C/C++ Application下的[Debug],然后选择下面的Legacy Create Process Launcher,然后OK即可,如下图所示
【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第7张图片
然后切换到Debugger标签,将其中的Debugger:选择为gdbserver
【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第8张图片

将开发板光盘配套软件中的arm-linux-gnueabihf-gdb.exe拷贝到Quartus的D:\intelFPGA\17.1\embedded\ds-5\sw\gcc\bin文件下,如下图所示
【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第9张图片
【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第10张图片

然后将上述添加的arm-linux-gnueabihf-gdb.exe,添加到配置中,如下图所示

【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第11张图片

然后将Connection下的选项配置为如下图所示,配置完成后点击Apply进行保存,先不要点击Debug!!!

【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第12张图片

接着在串口终端中,输入gdbserver :10000 hello_world,如下图所示

在这里插入图片描述

三、DS-5的Debug过程

然后回到DS-5,点击其中的Debug,接着会弹出切换Debug视图的提示,这里选择Yes

【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第13张图片
切换视图后的样子,如下图所示

【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第14张图片
在串口终端也会显示开启远程调试的打印信息

在这里插入图片描述
箭头默认指在第一行,前面的箭头表示程序运行的位置

【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第15张图片

从Variables窗口可以查看到变量值,如下图所示
【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第16张图片
点击其中的step over可以进行单步运行,如下图所示

在这里插入图片描述

可以看到在变量区变量的变化,如下图所示
【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第17张图片
也可以在串口终端看到信息的打印,如下图所示

在这里插入图片描述

调试完毕后,如何退出调试视图到普通视图呢?在软件的右上角,点击如下图所示选项即可!

【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第18张图片


待解决

在DS-5中打断点会有如下提示信息

【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第19张图片
【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序_第20张图片

你可能感兴趣的:(#,SoC,FPGA学习之Cyclone,V)