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