移植QtEmbedded 4.6.3 tslib1.4 到 S3C2440

1、下载源码包:

到QT官网下载最新版QT FOR EMBEDDED

下载最新版tslib1.4

 

2、配置交叉编译环境

下载交叉编译工具arm-linux-gcc 4.3.2(交叉编译工具的版本,请根据开发板中系统内核编译时使用的版本进行确定,我使用的mini2440内核采用此版本交叉编译器编译所以选用此编译器)

在命令行模式下执行

export PATH=/usr/local/arm/4.3.2/bin:$PATH

建议写成脚本setcrossenv.sh方便以后执行

 

3、交叉编译tslib1.4

A、安装编译过程需用到的程序
       
 root@hrixin-desktop:/home/hrixin# apt-get install autoconf(或autoconf2.13)
       
 root@hrixin-desktop:/home/hrixin# apt-get install automake
       
 root@hrixin-desktop:/home/hrixin# apt-get install libtool

 

 B、配置编译
       
 root@hrixin-desktop:/work/qt# tar xzvf tslib-1.4.tar.gz
       
 root@hrixin-desktop:/work/qt# cd tslib
        生成./configure
       
 root@hrixin-desktop:/work/qt/tslib# source autogen.sh

       注意:此步会导致交叉编译器环境变量失效,请一定检查交叉编译器环境变量是否设置,没有的话执行步骤2
       
 root@hrixin-desktop:/work/qt/tslib# ./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
       
 root@hrixin-desktop:/work/qt/tslib# make

 

这里出现错误:error: call to ‘__open_missing_mode’ declared with attribute error: open with O_CREAT in second argument needs 3 arguments

解决方法如下:

因为使用open函数的时候,如果在第二个参数中使用了 O_CREAT,就必须添加第三个参数:创建文件时赋予的初始权限。而在gcc-3.3.6/gcc/的collect2.c文件中有漏掉第三个参数的错误,而gcc-4.3对语法错误的检查严格是出了名的(4.1就不会因此错误退出),所以就退出了。

227,229行 cal_fd = open ("/etc/pointercal", O_CREAT | O_RDWR,0777);

 

C、安装
       
 root@hrixin-desktop:/work/qt/tslib# make install-strip //生成瘦身应用程序和库

      提示: 安装完成后请到/usr/local/tslib/bin目录下使用file 命令查看应用程序版本是否为arm版 如果显示arm说明交叉编译成功,否则显示x86,此时需要重新设置环境变量,重新配置,生成makefile重新make

修改/usr/local/tslib/etc/ts.conf  把第二行前面的注释去掉
        打包

 root@hrixin-desktop:/usr/local# tar czvf tslib.tar.gz tslib

    D、复制到U盘中
       
 以备拷贝到开发板中使用

 

E、设置环境变量,校准触摸屏。
        在天开板终端建立脚本文件,并执行:
        export TSLIB_ROOT=/usr/local/tslib  #tslib所在路径
        export TSLIB_TSDEVICE=/dev/input/event0  #指定触摸屏设备节点文件
        export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf #指定TSLIB配置文件的位置
        export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts #指定触摸屏插件所在路径
        export TSLIB_CALIBFILE=/etc/pointercal  #指定触摸屏校准文件pintercal的存放位置
        export TSLIB_FBDEVICE=/dev/fb0 #指定帧缓冲设备
        export QWS_MOUSE_PROTO=Tslib:/dev/input/event0

        注意:触摸屏的前提是你的触摸屏驱动已经写好,并加载进了内核.
        你可以测试有没有加载触摸屏驱动,cat /dev/input/event0(这只是我的板子上的触摸屏) ,
        点击触摸屏,看终端有无显示,若有则表明正确。
       
        在开发板/usr/local/tslib/bin目录下执行校准触摸屏程序:
        [root@FriendlyARM bin]# ./ts_calibrate
        可以运行此目录下的其他程序进行测试。
       
    至此,触摸屏程序能顺利运行,接下来移植QtEmbedded-4.5.2,设置好环境变量。

 

 

 

 

6、编译安装QtEmbedded-4.5.2-arm版本

    A、解压
   
 root@hrixin-desktop:/work/qte# tar xjvf qt-embedded-linux-opensource-src-4.5.2.tar.bz2
   
 root@hrixin-desktop:/work/qte# mv qt-embedded-linux-opensource-src-4.5.2 qt-embedded-linux-opensource-src-4.5.2-arm
   
 root@hrixin-desktop:/work/qte# cd qt-embedded-linux-opensource-src-4.5.2-arm

    B、配置编译:

   ./configure –h 查看配置选项  中文翻译见这里

./configure -prefix /usr/local/QtEmbedded-arm /

-embedded arm /

-release /

-opensource /

-fast /

-no-accessibility /

-no-scripttools /

-no-mmx /

-no-multimedia /

-no-svg /

-no-webkit /

-no-3dnow /

-no-sse /

-no-sse2 /

-silent /

-qt-libpng /

-qt-libjpeg /

-no-libmng /

-no-libtiff /

-no-multimedia /

-make libs -nomake tools -nomake examples -nomake docs -nomake demo /

-no-nis -no-cups -no-iconv -no-dbus -no-openssl /

-xplatform qws/linux-arm-g++ /

-little-endian /

-qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen /

-no-gfx-vnc /

-no-gfx-qvfb /

-qt-kbd-linuxinput /

-no-glib /

-qt-mouse-tslib /

-I /usr/local/tslib/include /

-L /usr/local/tslib/lib /

    注意这个目录要跟你的tslib安装目录相同!!!

 

root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-arm# make
   
    C、安装到/usr/local/Trolltech/QtEmbedded-4.5.2-arm目录下:
   
 root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-arm# make install

    在目录/usr/local/QtEmbedded-arm下创建脚本文件

建立脚本文件

    root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech/QtEmbedded-4.5.2-arm# vim setenv.sh

    输入以下内容:(把设置tslib环境变量的脚本文件内容,也添加进来)

    #!/bin/sh

export TSLIB_ROOT=/usr/local/tslib  #tslib所在路径

export TSLIB_TSDEVICE=/dev/input/event0  #指定触摸屏设备节点文件

export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf #指定TSLIB配置文件的位置

export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts #指定触摸屏插件所在路径

export TSLIB_CALIBFILE=/etc/pointercal  #指定触摸屏校准文件pintercal的存放位置

export TSLIB_FBDEVICE=/dev/fb0 #指定帧缓冲设备

export QWS_MOUSE_PROTO=Tslib:/dev/input/event0 #第一个,指明要使用tslib这个驱动>,对应的设备名字是/dev/ts

export TSLIB_CONSOLEDEVICE=none  #tslib运行需要的控制台,这里就是LCD屏幕 ,设定控

制台设备为none,否则默认为/dev/tty

export QTDIR=/usr/local/QtEmbedded-arm

export QPEDIR=/usr/local/QtEmbedded-arm

export LD_LIBRARY_PATH=$QTDIR/lib:$TSLIB_ROOT/lib:/usr/local/lib:$LD_LIBRARY_PATH

 

    D、打包编译安装好的QtEmbedded库文件:
   
 root@hrixin-desktop:/usr/local/# tar czvf QtEmbedded-arm.tar.gz QtEmbedded-arm

    E、建立脚本文件:setenv_arm.sh,输入以下内容:
    export QTEDIR=/usr/local/QtEmbedded-arm
    export PATH=/usr/local/QtEmbedded-arm/bin/:$PATH
    export LD_LIBRARY_PATH=/usr/local/QtEmbedded-arm/lib/:$LD_LIBRARY_PATH
   
    F、编译ARM版QT应用程序前,先执行此脚本文件:
   
 root@hrixin-desktop:/usr/local/Trolltech/QtEmbedded-4.5.2-arm# source setenv-arm.sh

    编译calculator
   
 root@hrixin-desktop:/work/qt/qt-embedded-linux-opensource-src-4.5.2-arm/examples/widgets/calculator# qmake

    root@hrixin-desktop:/work/qt/qt-embedded-linux-opensource-src-4.5.2-arm/examples/widgets/calculator# make    

 

7、使用U盘,把编译好的库文件复制到相关目录下。

    A、此处省略(u盘挂载拷贝)

 

    B、把打包好的库文件:QtEmbedded-arm.tar.gz复制到/work/root_qtopia/usr/local/目录下

    root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech# tar xzvf QtEmbedded-arm.tar.gz

    root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech# cd QtEmbedded-arm/

 

    C、将6-F中编译好的calculator可执行文件到开发板中:

 

 

    D、至此,启动后,开发板串口终端执行脚本文件(/usr/local/QtEmbedded-arm/setenv.sh),设置好环境变量。

    检查环境变量是否成功:

    [root@FriendlyARM QtEmbedded-4.5.2-arm]# echo $QTDIR

    /usr/local/QtEmbedded-arm

    成功!

    如果没有输出,则失败。同样的方法检查其他两个环境变量。

 

    E、运行calculator

    [root@FriendlyARM QtEmbedded-4.5.2-arm]# ./calculator -qws &

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: LPC1114是一款由NXP公司提供的ARM Cortex-M0微控制器,而IAR Embedded Workbench是IAR Systems提供的一个常用的集成开发环境。现在要将使用IAR开发的LPC1114工程移植到Keil开发环境中。 首先,打开Keil开发环境,创建一个新的工程。选择适当的器件,确保选择的器件与LPC1114兼容。接下来,将源码文件和头文件添加到Keil工程中。这些文件通常包括main.c(主文件)以及其他的.c和.h文件。 接下来,根据Keil中的需要,对IAR工程中的代码进行一些修改。例如,IAR中的某些特定函数或指令可能需要替换为适合Keil的函数或指令。这可以通过查看相关的文档或用户手册来获得适当的替换方法。 在移植过程中,还需要关注LPC1114的器件配置。在IAR中,在项目选项中有一个设备配置选项,其中可以设置芯片的时钟、外设等参数。同样,Keil也有类似的选项,需要确保将这些配置选项设置为与LPC1114相适应。 移植完成后,通过编译和调试验证移植的工程是否可正常运行。在进行验证时,可能会出现一些问题,例如编译错误、链接错误或功能异常。这些问题一般可以通过检查和调试代码来解决。 总体来说,将LPC1114 IAR Embedded Workbench移植到Keil开发环境中需要进行一些代码修改和器件配置的调整。根据Keil的具体要求进行适当的修改,并通过编译和调试验证移植成功。 ### 回答2: LPC1114是一款基于Cortex-M0内核的单片机,IAR Embedded Workbench和Keil MDK是两种常用的嵌入式开发工具。将LPC1114移植到Keil MDK的过程涉及以下几个步骤: 1. 创建新的Keil项目:在Keil MDK中,创建一个新的项目,选择LPC1114芯片作为目标设备。 2. 复制源代码和配置文件:将IAR Embedded Workbench项目的源代码和相关配置文件复制到新的Keil项目中。确保复制包括了主程序、功能函数、引用的头文件以及外设配置等。 3. 修改编译选项:根据Keil MDK的编译器和链接器要求,修改编译选项。例如,修改编译选项以兼容不同的编译器指令集、优化级别和调试选项。 4. 配置引脚和外设:通过Keil的软件开发包(CMSIS)、启动文件和外设库,对LPC1114的引脚和外设进行配置。根据需要,对时钟配置、中断管理、GPIO、UART、SPI等外设进行初始化和设置。 5. 解决平台相关问题:在移植过程中,可能会遇到一些平台相关的问题。例如,中断向量表的地址、系统时钟的设置、外设寄存器的地址定义等。根据LPC1114和Keil MDK的文档,对这些问题进行适当的调整和修改。 6. 编译、下载和调试:对移植完成的代码进行编译,生成hex或bin文件,然后将它下载到LPC1114的Flash存储器中。通过Keil MDK的调试工具,如Keil ULINK系列调试器,连接目标设备,进行调试和测试。 需要注意的是,IAR Embedded Workbench和Keil MDK是两种不同的开发工具,它们在编译器、链接器和调试器等方面有一些差异。因此,在移植过程中需要仔细查看LPC1114和Keil MDK的文档,了解它们之间的差异和相关配置。同时,也需要适当调整代码,以确保移植后的代码在Keil MDK环境下正常运行。 ### 回答3: lpc1114 iar embedded workbench是一款在IAR Embedded Workbench开发环境下使用的软件开发工具,而keil则是另一款常用的软件开发工具。将lpc1114 iar embedded workbench移植到keil的过程如下: 首先,需要准备好keil软件开发环境,包括安装keil的集成开发环境(IDE)和相应的编译器等必要组件。 接下来,需要将原先在lpc1114 iar embedded workbench下的源代码、工程配置文件等相关文件迁移到keil环境下。可以通过直接复制粘贴文件来实现这一步骤。 然后,需要在keil中新建一个工程,并将移植过来的源代码和配置文件添加到该工程中。确保所有依赖文件都正确地包含在工程中。 接着,根据lpc1114 iar embedded workbench环境中的设置,修改keil的相关配置。这包括正确配置编译选项、链接选项和调试配置等。需要根据项目需求进行适当的修改。 完成以上步骤后,进行编译和构建,以确保移植后的项目能够成功构建。在构建过程中,可能会遇到一些编译错误或者链接错误。需要根据错误提示进行逐个解决并修复。 最后,进行调试和测试。可使用keil提供的调试工具进行硬件调试和代码调试,确保移植后的项目能够正常运行和调试。 总的来说,将lpc1114 iar embedded workbench移植到keil的过程主要是将源代码和配置文件等迁移到keil环境下,并进行相关配置和错误修复。具体的移植过程可能会因项目的复杂程度和个人经验而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值