ARM40 Qt4.8.7远程调试

15 篇文章 0 订阅
13 篇文章 0 订阅
准备

默认以下所列举的软件都已安装完毕,主机和目标机可以通讯。

  • 主机平台:Ubuntu 16.04 LTS(x64)
  • 目标平台:ARM40-A5D3
  • 虚拟机:VMware® Workstation 12 Pro
  • Qt版本:Qt4.8.7
  • IDE版本:Qt Creator 3.4.2 (opensource)
  • 编译工具链:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi
  • 终端工具:putty
部署网络
  • 设置VMware网络为“桥接模式”

vm-bridge.png

  • 查看Ubuntu IP地址
    连接到ARM40-A5网络,并查看IP

net-arm40-a5.png

$ sudo service nfs-server status

nfs-stauts.png

eth0-arm40-a5.png

部署ARM40
  • 连接NFS服务器

使用putty登录ARM40,在它的/home目录下创建nfs目录。
将Ubuntu上的/home/nfsroot目录挂载到ARM40的/home/nfs/目录下。
查看nfs目录,发现test目录,挂载成功。

root@ARM40:# cd /home
root@ARM40:# mkdir nfs
root@ARM40:# mount -t nfs -o nolock 192.168.6.10:/home/nfsroot /home/nfs
root@ARM40:# ls nfs

test

arm40-mount.png

  • ARM40文件部署

将Ubuntu上/opt目录下的gdbserver,tslib库,Qt4相关库拷贝到/home/nfsroot目录下,ARM40通过访问本地nfs目录就可以直接调用了。

$ cd /opt/
$ ls
>>
gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi  qte4.8.7  zlib-1.2.8
qt4.8.7                                            sqlite3
qtcreator-3.4.2                                    tslib

$ cd gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/
$ sudo cp -p gdbserver /home/nfsroot/
$ ls /home/nfsroot/
>>
gdbserver  test

$ sudo tar cvf tslib.tar tslib/
$ sudo tar cvf qtelib.tar qte4.8.7/lib
$ sudo cp qtelib.tar tslib.tar /home/nfsroot/
$ ls /home/nfsroot/
>>
gdbserver  qtelib.tar  test  tslib.tar

ubuntu-gdbser.png
qt.ts.lib.tar.png

查看ARM40本地/home/nfs目录下,文件变化。
并将gdbserver,qtelib.tar,tslib.tar文件释放到本地/opt目录下。

root@ARM40:# cd /home/nfs/
root@ARM40:# chmod 755 ./*
root@ARM40:# mkdir -p /opt/gdbserver/bin/
root@ARM40:# cp -a gdbserver /opt/gdbserver/bin/
root@ARM40:# ls /opt/gdbserver/bin/
root@ARM40:# tar xvf qtelib.tar -C /opt/
root@ARM40:# tar xvf tslib.tar -C /opt/
root@ARM40:# ls /opt/

arm40-nfs-files.png
arm40-cp-gdbserver.png
arm40-chmod.png
arm40-opt.png

添加gdbserver的路径到ARM40系统环境变量中。

root@ARM40:# echo 'export PATH=$PATH:/opt/gdbserver/bin' >> /etc/profile
root@ARM40:# source /etc/profile
root@ARM40:# export
root@ARM40:# gdbserver --version

arm40-profile.png
arm40-profile-gdb.png
arm40-profile-gdbversion.png

  • ARM40 LCD部署

本教程使用的是4.3吋LCD,编辑S01user1lcd文件匹配相关尺寸LCD.

root@ARM40:# vi /etc/init.d/S01user1lcd

arm40-lcd.png

编辑profile文件,添加开启LCD背光的相关代码,保存退出,并使其生效。

root@ARM40:# vi /etc/profile
root@ARM40:# source /etc/profile
echo 115 > /sys/class/gpio/export
echo out > /sys/class/gpio/pioD19/direction
echo 1 > /sys/class/gpio/pioD19/value

arm40-lcd-bl.png

  • 部署ARM40 Qt运行环境

创建qtenv43.sh文件,添加Qt程序运行所需要的环境变量,并使其生效。

root@ARM40:# vi qtenv43.sh
root@ARM40:# source qtenv43.sh
root@ARM40:# export qtenv43.sh
#export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
export QTDIR=/opt/qte4.8.7
export TS_ROOT=/opt/tslib
export PATH=$TS_ROOT/bin:$PATH
export LD_LIBRARY_PATH=/lib:$TS_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=$TS_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TS_ROOT/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
#export QWS_DISPLAY="LinuxFb:mmWidth100:mmHeight130:0"
export QWS_DISPLAY="LinuxFb:/dev/fb0"
export QWS_SIZE="480x272"
export QWS_MOUSE_PROTO="Tslib:/dev/input/event0"
#export QWS_KEYBOARD="LinuxInput:/dev/input/event0"
export QWS_KEYBOARD="TTY:/dev/tty0"
export QT_QWS_FONTDIR=$QTDIR/lib/fonts

arm40-qt-sh.png

默认Qt库文件中,不包含中文语言包。将wqy_wmh.ttf复制到ARM40的相关路径下,就可以使得Qt支持中文。

root@ARM40:# cp wqy_wmh.ttf /opt/qte4.8.7/lib/fonts/

arm40-qt-fontcn.png

Qt远程调试
  • 创建HelloWorld工程

默认Qt Creator部署完成,参考部署Qt Creator 3.4.2
创建helloworld Qt程序。

arm40-qt-proj.png
arm40-qt-app.png
arm40-qt-hello-nfsroot.png
arm40-qt-hello-qmake.png
arm40-qt-hello-done.png

双击“界面文件”下的“mainwindow.ui”文件,创建UI界面。

arm40-qt-hello-db.png
arm40-qt-hellocn.png

添加相关代码,右击左下角“锤子”图标,开始编译工程。

arm40-qt-hello-debug.png

  • 调试HelloWorld工程

开始调试程序前,要在ARM40上运行gdbserver程序。

root@ARM40:# gdbserver 192.168.6.10:1234 helloworld -qws

arm40-gdb-lis.png

每调试一次程序,都必须点击“Attach to Running Debug Server…”,否则就会连接不到ARM40;当然,gdbserver也要重新执行一次,有点鸡肋,不如打印来的直接。

arm40-qt-hello-touch.png

下图中的参数不能有错,否则就会调试失败。

arm40-qt-hello-nfile.png
arm40-qt-hello-debug-run.png

屏幕已经点亮,程序跑起来了。

arm40-displaycn.png

至此,Qt4.8.7远程调试结束。

参考引用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值