笔者用的是正点原子提供的虚拟机镜像。因时间因素,这篇教程也有很多问题,还请多多包涵。
找到交叉编译器的所在目录,然后把 gdbserver 这个文件找出来(如果你也跟笔者用的一个镜像,可以根据【正点原子】I.MX6U 虚拟机使用参考手册 这个文件找到目录)
然后还要准备一份测试程序,记得把 Makefile 里面的编译器设置为交叉编译器
(CC=arm-……-gcc)如下图:
补充:这里面你的交叉编译器是啥就填啥,后面涉及到这个交叉编译器的命令也是这样的,但我就不重复叙述了。
接下来终端输入 make 获得可执行文件(我在网上看到有说法编译测试程序,编译的时候要加-g参数,我因为时间因素没试)
参考网址:迅为i.MX6ULL开发板移植Gdb+Gdbserver调试 - ARM技术 - 电子工程世界-论坛
下面注意了,我们要完成虚拟机和开发板的网络配置,这部分参考 【正点原子】I.MX6U网络环境TFTP&NFS搭建手册 进行网络环境搭建。
下载 MobaXterm,我们通过它与开发板进行串口通信。
给开发板插上网线、USB线、电源线。在该软件里面进行如下的选择后,点击OK
如果出现下图,说明串口链接上了。
然后我们把 gdbserver 和 测试程序的可执行文件 传过来。这里方法很多,【正点原子】I.MX6U网络环境TFTP&NFS搭建手册 与 【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.6
也可以参考这里【IMX6ULL驱动开发学习】04.IMX6ULL开发板与虚拟机互传文件(scp、SFTP、NFS)_开发板怎么才能使用scp-优快云博客
我自己使用了一种笨方法,通过串口传输过去...我也简单介绍如何进行串口传输吧,先把 MobaXterm 的右键粘贴关了,输入 rz 然后回车,在右键弹出的菜单中选择 send file using Z-modern,然后选择需要传输的文件就好了。
我出现过显示传输失败,但是其实这个文件能用的情况,大家可以注意下。
总之,不管用什么方法传好后,可能还要在给加个可执行权限,不然没权限执行,命令如下
如果有可执行文件有了执行的权限的话,ls 后会发现该文件是绿的。
你可以检查下gdbserve是不是能用的,如果能用大概是这样
到这里的话,恭喜你,万事俱备,只欠东风!
到这里和老师的教程就差不多了,不过要补充的是,网口链接IP地址后要加端口号哦,不然会报错
接下来,开发板这边输入如下命令,其中 IP 地址是虚拟机的 IP 地址(很可能,你的虚拟机被你设置了两个网络接口,那注意分辨下)
接下来,虚拟机输入这两条命令,IP 是你设置的开发板 IP。
没发生意外的话,没有报错,就可以开始调试了。