还是arm板上的手持医疗终端项目,承接上篇搭建环境的博客。
这里简单记录下将windows上写好的Qt项目交叉编译成arm平台的可执行文件与如何将编译好的可执行文件运行在FriendlyArm的mini2440开发板上(一口气读起来有点长系列)。
前期准备
-
在windows上用Qt创建的项目
-
tftpd32.exe
Tftpd32是一个集成DHCP, TFTP, SNTP和Syslog多种服务的袖珍网络服务器包,同时提供TFTP客户端应用
主要是通过它把编译好的可执行文件下载到开发板mini2440
-
SecureCRT
SecureCRT是一款用于连接运行包括Windows、UNIX和VMS的理想工具
xp自带了超级终端但xp以后的系统不再自带,这里去CSDN下载了一个win7的超级终端
交叉编译
简单地说,就是在一个平台上生成另一个平台上的可执行代码。
-
找到拷贝到linux系统里需要编译的qt工程 cd进入其目录
-
删除项目配置文件 rm 项目名.pro.user
-
执行qmake指令,建立编译规则
- /home/neusoft/arm-qte-4.8.5/qt-everywhere-opensource-src-4.8.5/bin/qmake
- /usr/local/Trolltech/QtEmbedded-4.8.5-arm/bin/qmake
这个指令有上面两个存放路径,随便执行哪个都行,第一个是源码路径,第二个是安装路径。
-
执行make指令,进行编译
make
- 如果没有错误,会生成很多中间代码,也就是.0文件和一个程序的可执行文件
-
如果不是第一次make,已经产生了很多中间文件,可以先执行make clean进行清除,再执行make进行编译
下载可执行文件到开发板
-
把可执行文件从虚拟机的linux中拷贝windows,放到与tftpd32.exe的同一级目录下
-
打开超级终端SecureCRT,使用串口线连接开发板与电脑
-
点击文件->快速连接
-
协议选择 Serial
-
端口填 COM2
-
波特率填 115200
-
取消勾选 RTS/CTS
-
优化SecureCRT界面
选择菜单 选项->会话选项,在弹出对话框中左边选择“仿真”,在右边的“终端”选择”linux”
-
点击回车进入开发板的终端界面
-
-
打开tftpd32.exe ,使用网线连接开发板与电脑
-
运行tftpd32.exe,在tftpd32界面查看本机ip(假设为XXX.XXX.X.XXX)
-
配置开发板IP与本机的IP同一网段(前三位相同)
查看开发板相关ip信息,在开发板终端输入
ifconfig
设置开发板ip(同一网段),在开发板终端输入
ifconfig eth0 XXX.XXX.X.*
-
测试连接,在开发板终端输入
ping XXX.XXX.X.XXX
-
成功连接的话 进行下载,在开发板终端输入
tftp -g -r 可执行文件名 XXX.XXX.X.XXX
-
开发板运行可执行文件
-
配置开发板运行环境,在开发板终端输入
cd /bin/ . setqt4env
. 空格 setqt4env
-
如果程序不是可执行文件 增加权限(在终端下没变色)
chmod +x 可执行文件名
-
运行程序
./可执行文件名 -qws
-
强制结束程序
ctrl+c(中断)
结束语
下载可执行文件到开发板这部由于要插拔网线,导致特别麻烦,而且网线连开发板了就没法上网,找出了两个办法解决这个问题:
-
U盘
有U盘插电脑上,拷贝可执行文件,也就是要运行的程序,再插开发板上,连接好超级终端后,在开发板终端输入
cp /udisk/可执行文件 .
拷贝到开发板即可
-
MiniTools-USB下载工具
全新的USB下载工具MiniTools,配合Superboot,用户可以像刷手机一样刷开发板