[原创] “intel SoC FPGA学习心得”+课时5中GDBServer我的实现方法

STM32F103   2019-5-18 18:36 楼主
我用的是DE10-Nano的板卡,并且所用的Quartus的版本为16.1,在学习课程的过程中,其中第5课时关于GDBServer的使用,发现和小梅哥视频中的操作不太一样,具体体现在没有Connection的选项,如下图所示: 0_NoDebug.png 然后我在测试的过程中没办法去测试,经过一番摸索,发现使用C/C++ Remote Application的方法可以完成小梅哥视频里面的教程。因此在此处跟大家分享一下,大部分的操作和视频是一样的,首先我也是 采用的板子和电脑通过网线直连的方法,那么这时候需要设置一下板子和电脑的IP,其中我的电脑设置的IP为192.168.2.100 3_ComputerIP100.png 然后通过命令“ifconfig eth0 192.168.2.101”临时设置板子的IP为192.168.2.101 2_IP101.png 为了验证连接上通不通,此处使用电脑端的CMD命令ping一下板子 4_100Ping101.png 可以发现通过ping的命令在连接上是正常的。 在视频中小梅哥使用的是WinSCP来实现文件的传输的,并且特别提到了需要设置root账号的密码,在此处笔者的电脑上,发现不用设置密码同样可以通过WinSCP连接到板子,连接的结果如下: 5_WinSCP.png 连接完成以后设置C/C++ Remote Application,其实这里和小梅哥视频中的设置一样,在此处非常感谢小梅哥,提供了一种新的调试方案,我记得以前学习SOC的时候,调试的步骤特别复杂,现在用的小梅哥提供的调试方案,简化了不少,并且效率也还行,调试的时候反应也很快。下面是电脑端DS-5中工程调试的设置: 8_DebugConfig.png 9_DebugConfig.png 在此处需要注意的是,IP地址的选择一定要对上。 本文所使用的测试代码很简单:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(void)
  4. {
  5. int a=0,b=0,c=0;
  6. printf("!!!Hello World!!!\n");
  7. a=1;
  8. b=2;
  9. c=a+b;
  10. b++;
  11. c=c+b;
  12. printf("c:%d\n",c);
  13. return EXIT_SUCCESS;
  14. }
接下来把上述代码编译生成的HelloLinux文件通过WinSCP复制到板子上: 6_WinSCP.png 同时在板子上更改运行的权限,先直接运行一下程序,看看结果对不对: 7_Running.png 通过测试可以看到运行出来的结果还是正确的。 接下来可以进行调试,首先输入命令“gdbserver :10000 HelloLinux”等待调试: 10_gdbserver.png 然后在电脑端执行Debug操作,进行在线的调试工作,调试的过程如下: 11_gdb_online.png 11_gdb_online2.png 11_gdb_online3.png 12_gdb_testover.png 调试过程中可以看到参数a,b,c的值发生了变化,同样输出的printf也跟着发生了改变,说明使用gdbserver的方法调试成功。 本帖最后由 STM32F103 于 2019-5-18 18:59 编辑
  • 1_NoIP.png

回复评论 (1)

很赞,谢谢分享。
点赞  2019-5-21 11:10
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复