虚拟机下登陆beso_wifi开发板以及安装图形界面gdb调试工具
由于开发,以及偷懒的需要(不想直接安装linux),于是我花了一些时间研究了下如何在VMware的linux下登陆操控开发板。具体过程如下:
一.所需软件及硬件:
1.beso_wifi开发板(芯片ADSP-BF561,系统uclinux)
2.VMware Workstation 6.5
3.Fedora-11-i386-DVD.iso
二.VMware-tools安装及Fedora11中的软件安装:
1.VMware-tools是安装VMware后不得不安装的插件,此插件非常强大,安装完后可以直接访问windows下的目录,以及可以和windows拖拽文件到彼此系统。但是Fedora11的内核版本是2.6.29,直接用VMware Workstation 6.5自带的安装编译的时候会报错,于是从网上下了打好补丁的VMware-tools,具体地址http://www.damipan.com/file/1xj0wVx.html,该版本可以支持ubuntu 9.10。解压,安装,一切顺利。
2.安装tftp以及xinetd,Fedora以及Redhat下面都有比较好用的软件安装命令,yum install xxx 一切搞定。能够通过网络安装的尽量通过网络,如果自己单独安装会发生很多由于一些依赖的软件没有安装而报错,到时候上网一个个查原因异常的痛苦,所以极力推荐使用yum一句搞定!装完tftp及xinetd后,在终端下面输入setup,去掉iptable选项,使能nfs,tftp,xinetd选项。在etc/xinetd.d下面添加tftp的配置,在/root/.bashrc下面加上in.tftpd -l /tftpboot/选项。
3.串口及网络配置。由于是虚拟机连接开发板,所以要解决两个问题。一个是串口,一个是网口。串口的安装比较简单。如果host机子直接有串口的话,在VMware下面添加对应的串口设备即可。启动fedora11,运行minicom -s 把设备改成/dev/ttyS0,选好波特率,去掉流控,保存。板子上电终端显示uboot打印信息,一切OK!如果host机是只有usb口的笔记本,那么需要一根usb转串口的连接线,首先在windows下面装好驱动,然后在VMware下面相应的添加串口,我机子显示的是COM5。fedora启动之后配置minicom和原先的步骤一样。切记!无需把ttyS0改成ttyUSB。接下来是网卡的配置,注意此时虚拟机network adapter选择bridged(桥接)即当成真实的物理机,自然,在Edit->Virtual Network Editor->Host Virtual Network Mapping下面选择网卡。(这一步往往有人忘记)。重新启动fedora,终端下把eth0的ip改成192.168.6.4,板子上电,在minicom下使用tftp命令copy内核并启动,一切OK。
三.gdb调试
装VMware的目的就是为了尽可能的使开发调试变得方便,另外调试内核和app,gdb的实现是必不可少的。根据官网http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:kgdb_2008r1.5上面的介绍,我在虚拟机上完成了kgdb的搭建。步骤如下:
1.首先在08R1的补丁文件夹下面更新一个名为kgdb_patch/kgdb_bfin_linux-2.6.x.patch的文件。原先该补丁的一些bug有得到修正。下载地址:http://blackfin.uclinux.org/gf/project/uclinux-dist/scmsvn/?action=browse&path=%2Fbranches%2F2008R1%2Fbfin_patch%2Fkgdb_patch%2F
2.更新完成后,根据官网上面的说明,在linux-2.6.x目录下输入命令
patch -p1 < ../bfin_patch/kgdb_patch/kgdb_bfin_linux-2.6.x.patch
该补丁的作用是添加一些文件到相应的目录,以及修改makefike及kconfig,使得配置内核的时候会有相应的选项。
3.运行make linux_menuconfig配置内核,使能KGDB选项
Kernel hacking --->
[*] Kernel debugging
[*] KGBD: kernel debugging with remote gdb
[*] KGDB: Over Ethernet
另外还要配置cmd line
Blackfin processor options --->
Board customizations --->
[*] Default bootloader kernel arguments
(console=ttyBF0,115200 [email protected]/,@192.168.6.4/) Initial kernel command string
运行make config_menuconfig在Miscellaneous Applications选中gdbserver(old)。注意:里面有两个gdbserver,需要选中后面为old标注的才是正确的。
以上几步完成了内核的配置,使能了KGDB调试,通过以太网通过udp进行GDB调试,默认的目标板端口为6443,主机端口6442
4.内核编译完成后,进入linux-2.6.x目录,输入bfin-uclinux-gdb vmlinux开启gdb调试,板子上电启动内核后,在host机上输入gdb命令target remote udp:192.168.6.213:6443,可以看到目标板上出现waiting以及connet相关的字样,说明gdb连接成功,接着根据官网上面给出的一些关于gdb调试的例子做了测试,如下:
host:
(gdb) break sys_open
# Use the GDB continue command
(gdb) c
On the target system use the “ls” command to trigger a breakpoint at sys_open
/> ls
The Breakpoint hits and GDB displays a message
"Breakpoint 1: sys_open(..."
# Use the gdb single stepping command
(gdb) si
# Use the GDB remove breakpoint command
(gdb) del 1
# Set hardware breakpoint
(gdb) hbreak sys_open
# Continue
(gdb) c<code>
- Run "ls" in the target console <code>
/> ls<code>
- The GDB Session is terminated using the detach command<code>
# Interrupt the target from the GDB host
(gdb) Type Ctrl+C
# Detach the GDB host from the target
(gdb) detach
# Exit GDB
(gdb) quit
4.安装DDD,实现图形界面的DDD调试,安装DDD的时候还是一样,直接用yum,切记不要单独下载ddd的压缩包安装,这样会报错,因为安装ddd需要同时安装7个依赖的软件或者lib。安装完成后在终端下面输入
ddd --debugger bfin-uclinux-gdb vmlinux,美好的图形界面的gdb调试功能就实现了的,做了同官网上面给的example,非常顺利。另外最新版的图形界面gdb调试可以是基于eclipse的,该软件更强大,官网上面相关的信息8.12刚刚进行过更新,有时间的话还要尝试下,完成了环境的搭建后,下面就要开始gdb的学习了^.^
转载请注明出处