JZ2440开发板移植Qtopia2.2.0

参考文献:
       《嵌入式Linux应用开发》韦东山编著
         http://emb.hqyj.com/column/column97.htm

(1)移植环境:
         环境:ubuntu9.10
         gcc:  4.4.1
         arm-linux-gcc: 3.4.5

(2)移植Qtopia依赖的库
        ①  编译、安装jpeg库jpegsrc.v6b.tar.gz:
             tar xzvf jpegsrc.v6b.tar.gz
             cd jpeg-6b/
            ./configure --enable-shared --enable-static --prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux --build=i386 --host=arm

             vi Makefile,如下:
             CC= gcc 改为:CC= arm-linux-gcc
             AR= ar rc 改为:AR= arm-linux-ar rc
             AR2= ranlib 改为:AR2= arm-linux-ranlib

             make
             make install
             将在/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux中的include目录中生成一些头文件,在lib目录中生成一些jpeg库文件。

       ② 编译、安装uuid库:
               tar xzf e2fsprogs-1.40.2.tar.gz
               cd e2fsprogs-1.40.2/
               mkdir build; cd build
               ../configure --with-cc=arm-linux-gcc --with-linker=arm-linux-ld --enable-elf-shlibs --host=arm -prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux
               make
               make install
               最后一条命令在/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/下的include、lib目录中安装一些头文件和库,比如uuid/uuid.h、libuuid.a、libuuid.so等

        ③ 编译、安装zlib库:
               tar xzvf zlib-1.2.3.tar.gz
               cd zlib-1.2.3/
               ./configure --shared --prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux
               修改生成的Makefile,以下是修改后的结果,都加上了“arm-linux-”前缀:
               CC=arm-linux-gcc
               ……
               LDSHARED=arm-linux-gcc -shared -Wl,-soname,libz.so.1
               ……
               CPP=arm-linux-gcc -E
               ……
               AR=arm-linux-ar rc
               ……
               RANLIB=arm-linux-ranlib
               make
               make install


       ④ 编译、安装png库:
              tar xjf libpng-1.2.23.tar.bz2
              cd libpng-1.2.23/
              cp scripts/makefile.linux ./Makefile
              修改Makefile,以下是修改后的结果,都加上了“arm-linux-”前缀:
               AR_RC=arm-linux-ar rc
               CC=arm-linux-gcc
                ……
               RANLIB=arm-linux-ranlib
                ……
               prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux

               make
               make install

        ⑤ 编译、安装触摸屏ts库:
         由于使用tslib-1.3按照文档修改依然出现“libtool:link: only absolute run-paths are allowed“的错误,决定使用tslib-1.4:

        a、使用tslib-1.3:
             tar xjf tslib-1.3.tar.bz2
             cd tslib-1.3/
            ./autogen.sh
            echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
            ./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no --prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux

            在make之前,为了支持触摸屏修改src/ts_read_raw.c文件,如下修改代码:
            char *defaulttseventtype="UCB1x00";
            改为:
            char *defaulttseventtype="H3600";

           为了防止出现“libtool:link: only absolute run-paths are allowed“的错误,在plugins/Makefile里面找rpath,找到将其注释并加上绝对路径:
           #LDFLAGS :=$(LDFLAGS) -rpath $(PLUGIN_DIR)
           LDFLAGS :=$(LDFLAGS) -rpath `cd $(PLUGIN_DIR) && pwd`

           最后执行以下命令编译安装:
           make
           make install

         b、使用tslib-1.4:
           tar xzf tslib-1.4.tar.gz
           cd tslib
          ./autogen.sh
           echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
          ./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=$(pwd)/tmp

          // 如果使用的arm-linux-gcc-4.3.2交叉编译工具要修改/usr/local/arm/4.3.2里
         // 的宏EV_VERSION要修改input.h,再make,详情参见“触摸屏实验章节”
          make
          make install      //安装到tmp目录

(3)编译安装Qtopia-2.2.0
         使用补丁修改、编译QT:
         tar xzf qtopia-free-src-2.2.0.tar.gz
         cd qtopia-free-2.2.0
         patch -p1 < ../qtopia-free-2.2.0_jz2440.patch
         ./configure -qte '-embedded -xplatform linux-arm-g++ -qconfig qpe -depths 16,24 -no-qvfb -system-jpeg -system-libpng -system-zlib -tslib -gif -thread -lts' -qpe '-xplatform linux-arm-g++ -edition pda -displaysize 240x320' -qt2 '-no-xft' -dqt '-no-xft'

         make
         make install  这将把所有必需的目录、文件复制到qtopia/image/opt/Qtopia目录下。注意:./configure时,要输入“yes”并回车才能继续下去


(4)基于最小根文件系统制作QT文件系统
         使用fs_mini_mdev.tar.bz2,或者自己用busybox重新制作一个。
         sudo tar xjf fs_mini_mdev.tar.bz2
         sudo cp -rf fs_mini_mdev fs_qtopia
         sudo chown book:book fs_qtopis –R

         a、复制Qtopia所依赖库文件
              cd /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/
              cp libpng.so* /home/book/workspace/jz2440_project/fs_qtopia/lib/ -d
              cp libjpeg.so* /home/book/workspace/jz2440_project/fs_qtopia/lib/ -d
              cp libuuid.so* /home/book/workspace/jz2440_project/fs_qtopia/lib/ -d
              cp libz.so* /home/book/workspace/jz2440_project/fs_qtopia/lib/ -d

         b、拷贝触摸屏所需文件
               到libts目录下:
               cd /home/book/workspace/jz2440_project/system/deps/tslib/tmp
               cp * /home/book/workspace/jz2440_project/fs_qtopia -rfd
               修改开发板 /etc/ts.conf第1行(去掉#号和第一个空格):
               # module_raw input
               改为:
               module_raw input

          c、复制字库
               cd /home/book/workspace/jz2440_project/system/deps/qtopia-free-2.2.0/
               cp -rf qt2/lib/fonts qtopia/image/opt/Qtopia/lib/

         d、将qtopia/image/opt/整个目录复制到开发板根目录上
               cd /home/book/workspace/jz2440_project/system/deps/qtopia-free-2.2.0/
               cp -rf qtopia/image/opt /home/book/workspace/jz2440_project/fs_qtopia

         e、创建时区文件
               直接使用主机中的时区文件:
               cd /home/book/workspace/jz2440_project/fs_qtopia
               mkdir -p usr/share/zoneinfo/
               cp -rf /usr/share/zoneinfo/America usr/share/zoneinfo/
               cp /usr/share/zoneinfo/zone.tab usr/share/zoneinfo/

         f、建立一个脚本文件,用来较验触摸屏
             在单板根目录/bin下建立ts_cal.sh文件,内容如下:
=====================================================================
#!/bin/sh
export HOME=/root
export QTDIR=/opt/Qtopia
export QPEDIR=/opt/Qtopia
export QWS_DISPLAY=LinuxFb:/dev/fb0
export QWS_KEYBOARD="TTY:/dev/tty1"
#export QWS_MOUSE_PROTO="USB:/dev/mouse0"
export QWS_MOUSE_PROTO="TPanel:/dev/ts0"
export PATH=$QPEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
/usr/bin/ts_calibrate
=====================================================================
       我们使用ts_calibrate来较验触摸屏,QT自带的触摸屏程序不好用。想再次较验时,把/etc/po删掉后重启单板就可以了。
这个脚本被下面说到的qpe.sh调用。
还要修改它的属性:
chmod +x bin/ts_cal.sh


           g、建立一个脚本文件,用来运行qtopia
在单板根目录/bin下建立qpe.sh文件,它用来设置环境变量、启动qtopia。内容如下:
=====================================================================
#!/bin/sh
export HOME=/root
export QTDIR=/opt/Qtopia
export QPEDIR=/opt/Qtopia
export QWS_DISPLAY=LinuxFb:/dev/fb0
export QWS_KEYBOARD="TTY:/dev/tty1"
#export QWS_MOUSE_PROTO="USB:/dev/mouse0"
export QWS_MOUSE_PROTO="TPanel:/dev/ts0"
export PATH=$QPEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
if [ ! -e /etc/pointercal ]
then
/bin/ts_cal.sh
fi
$QPEDIR/bin/qpe &
=====================================================================


       h、修改根文件系统的启动脚本
             修改/home/book/workspace/jz2440_project/fs_qtopia/etc/fstab文件,加入一行:
             tmpfs /tmp tmpfs defaults 0 0

             /home/book/workspace/jz2440_project/fs_qtopia/etc/init.d/rcS,在最后加入以下一行:
             /bin/qpe.sh &
             还要修改它的属性:
             chmod +x bin/qpe.sh


(5)制作YAFFS2、JFFS2文件系统映象文件
         mkyaffs2image fs_qtopia fs_qtopia.yaffs2
         mkfs.jffs2 -n -s 2048 -e 128KiB -d fs_qtopia -o fs_qtopia.jffs2


(6)烧写系统测试:
    tftp 30000000 u-boot.bin; nand erase.part u-boot; nand write 30000000 u-boot
    reset
    tftp 30000000 uImage;nand erase.part kernel;nand write 30000000 kernel    
    tftp 30000000 fs_qtopia.yaffs2;nand erase.part rootfs;nand write.yaffs 30000000 260000 $filesize
或:
    tftp 30000000 fs_qtopia.jffs2;nand erase.part rootfs;nand write.jffs2 30000000 260000 $filesize


设置参数:
    set bootcmd 'nand read 30000000 kernel;bootm 30000000'
    set bootargs console=ttySAC0,115200 root=/dev/mtdblock3
或:
    set bootargs console=ttySAC0,115200 root=/dev/mtdblock3 rootfstype=jffs2
    set machid 16a
    save
    reset

制作好的补丁文件下载:https://download.csdn.net/download/u014069939/11343242

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JZ2440开发板的串口接线是将串口模块与其他设备进行连接,用于数据传输和通信。串口接线通常涉及到三条线,包括TXD(发送线)、RXD(接收线)和GND(地线)。 首先,将JZ2440开发板上的串口连接器上的TXD引脚与其他设备的RXD引脚相连,确保数据能够从开发板发送到外部设备。这样可以进行向外发送数据的操作。 其次,将JZ2440开发板上的串口连接器上的RXD引脚与其他设备的TXD引脚相连,确保可以接收外部设备发送的数据。这样可以进行从外部接收数据的操作。 最后,将JZ2440开发板上的串口连接器上的GND引脚与其他设备的相应引脚相连,以建立共同的地线。地线的连接是确保数据的稳定性和可靠性,可以防止电气噪声对数据传输的干扰。 串口接线完成后,可以通过软件编程来控制JZ2440开发板与其他设备之间的数据传输和通信。例如,可以使用C语言编写程序,通过串口发送和接收数据,实现与其他设备的交互。 ### 回答2: jz2440开发板的串口接线主要涉及到三个主要的信号线:TXD(传输器数据发送)、RXD(接收器数据接收)和GND(地线)。 在jz2440开发板上,串口接口位于底板的DB9接口上。为了连接串口,我们需要使用一根DB9母头到母头的串口线缆,并将其一端连接到jz2440开发板的串口接口,另一端连接到你的电脑或其他外部设备。 在接线之前,需要确保jz2440开发板和外部设备(如电脑)的地线是互相连接的,以确保信号的稳定性。这可以通过将开发板的串口GND引脚连接到外部设备的地线上来实现。 然后,将jz2440开发板的串口TXD引脚连接到外部设备的串口RXD引脚上,以便开发板可以发送数据给外部设备。同时,将开发板的串口RXD引脚连接到外部设备的串口TXD引脚上,以便开发板可以接收来自外部设备的数据。 连接完毕后,可以使用相应的串口通信软件,在电脑上进行数据的发送和接收。串口的通讯速率、数据位数、停止位数等参数需要与外部设备进行匹配设置,以确保正常的数据传输。 总之,jz2440开发板的串口接线很简单,只需要连接TXD、RXD和GND三个信号线即可。通过这样的串口接线,我们可以方便地进行开发板与外部设备之间的通信和数据传输。 ### 回答3: jz2440开发板串口接线通常需要以下几个步骤: 1. 准备工作:确保已经购买了jz2440开发板,并准备好了所需的串口线(通常是USB转TTL串口线)。 2. 开发板接线:将串口线的USB端插入计算机的USB接口,将TTL串口端与开发板上的串口接口相对应的引脚连接起来。具体连接方式需要参考开发板的用户手册或者对应的连接图。 3. 电源连接:将开发板上的电源适配器插入电源插座,确保开发板正常供电。 4. 软件设置:在计算机上安装驱动程序,通常需要根据具体使用的操作系统来选择相应的驱动程序。安装完成后,设置串口的通信参数,例如波特率、数据位、校验位等。 5. 串口通信测试:启动串口调试助手等串口通信调试工具,选择正确的串口端口,并设置与开发板相同的通信参数。点击打开串口按钮后,就可以通过串口调试助手发送和接收数据,实现与开发板的串口通信。 总结来说,jz2440开发板的串口接线需要正确连接串口线,并进行相应的软件设置,然后通过串口调试助手等工具进行串口通信测试。通过这样的步骤,我们就可以在jz2440开发板上实现串口通信功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值