打印

E8开发环境搭建(基于ubuntu10.04)

[复制链接]
175|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
车水马龙|  楼主 | 2018-10-4 12:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、搭建交叉编译环境

https://opensource.motorola.com/sf/sfmain/do/home是有交叉编译工具链源码的(X86_Targeted_Toolchain_Source.tgz),不过目前编译好的只有linux环境下的(e8-gcc.tar.lzma),所以我使用的开发环境是Ubuntu 10.04,下载下来解压到任意目录下,这里我解压到/LinuxDev/work/phone/moto/e8/toolchain目录下。

为方便调用,写了一个脚本cross.sh:

view plaincopy to clipboardprint?

#!/bin/bash   

  

MOTO_PHONE_MODEL=e8   

MOTO_PHONE_DIR=phone/moto   

HOST_OS=`uname -o`   

if [ "${HOST_OS}" = "Cygwin" ]; then   

export PATH_WORK_ROOT=/cygdrive/d/work/${MOTO_PHONE_DIR}/${MOTO_PHONE_MODEL}   

else  

export PATH_WORK_ROOT=/LinuxDev/work/${MOTO_PHONE_DIR}/${MOTO_PHONE_MODEL}   

fi   

  

export TOOLCHAIN_VERSION=e8-gcc   

export TOOLCHAIN_PREFIX=arm-linux-gnueabi  



#  

# tool  

#   

export PATH_WORK_TOOL=${PATH_WORK_ROOT}/toolchain   

export PATH_TOOLCHAIN_ROOT=${PATH_WORK_TOOL}/${TOOLCHAIN_VERSION}   

export PATH_TOOLCHAIN_BIN=${PATH_TOOLCHAIN_ROOT}/bin  



#  

# Export ALL PATH  

#   

export PATH=${PATH_TOOLCHAIN_BIN}:${PATH}   

export CROSS_COMPILE=${TOOLCHAIN_PREFIX}-  

#!/bin/bash

MOTO_PHONE_MODEL=e8

MOTO_PHONE_DIR=phone/moto

HOST_OS=`uname -o`

if [ "${HOST_OS}" = "Cygwin" ]; then

export PATH_WORK_ROOT=/cygdrive/d/work/${MOTO_PHONE_DIR}/${MOTO_PHONE_MODEL}

else

export PATH_WORK_ROOT=/LinuxDev/work/${MOTO_PHONE_DIR}/${MOTO_PHONE_MODEL}

fi

export TOOLCHAIN_VERSION=e8-gcc

export TOOLCHAIN_PREFIX=arm-linux-gnueabi

#

# tool

#

export PATH_WORK_TOOL=${PATH_WORK_ROOT}/toolchain

export PATH_TOOLCHAIN_ROOT=${PATH_WORK_TOOL}/${TOOLCHAIN_VERSION}

export PATH_TOOLCHAIN_BIN=${PATH_TOOLCHAIN_ROOT}/bin

#

# Export ALL PATH

#

export PATH=${PATH_TOOLCHAIN_BIN}:${PATH}

export CROSS_COMPILE=${TOOLCHAIN_PREFIX}-

2、SDK开发环境

指的是motorola封装的QT图形库以及一些系统API的开发包,下载下面几个包即可:

E8SDK_by_ilove3d.tar.gz                      --- 1.0版开发包

E8 EZX SDK v1.1 by tulanix.zip              --- 1.1版开发包,修复了1.0版本的一些错误

bin和tmakelib目录                                   --- 1.1版本的SDK中不带这两个目录,可以从1.0版本中复制过来

E8-lib.tar.bz2                                         --- 库文件,也可以从手机复制出来,不过不同的软件版本库文件有所不同,可能不通用

ilove3d_ezxSample_zn5_e8.tar.gz        --- 示例代码

这里我把SDK放在/LinuxDev/work/phone/moto/e8/sdk/e8_ezx_sdk-1.1.0目录下,这个目录即是${QTDIR}。下载的那个E8-lib包整的不好,很多链接都变成真实文件了,大概是没有在手机中打包出来,将示例代码解压出来的ezxSample目录放到${QTDIR}/test路径下,按照下面的方法进行编译。

其中修改了一些文件:

${QTDIR}/env.sh

view plaincopy to clipboardprint?

#!/bin/bash   

  

. ../../cross.sh   

  

export MOTO_PHONE_MODEL=e8   

export MOTO_PHONE_SDK=e8_ezx_sdk-1.1.0   

export QTDIR=${PATH_WORK_ROOT}/sdk/${MOTO_PHONE_SDK}   

export TMAKEPATH=${QTDIR}/tmakelib/pwd/arm-linux-g++/   

export PATH=${QTDIR}/bin:${PATH}  

#!/bin/bash

. ../../cross.sh

export MOTO_PHONE_MODEL=e8

export MOTO_PHONE_SDK=e8_ezx_sdk-1.1.0

export QTDIR=${PATH_WORK_ROOT}/sdk/${MOTO_PHONE_SDK}

export TMAKEPATH=${QTDIR}/tmakelib/pwd/arm-linux-g++/

export PATH=${QTDIR}/bin:${PATH}

${TMAKEPATH}/tmake.conf

第一次不修改此文件编译通过了,但是第二天再编译不知怎的就老是出现动态链接库(liblm.so等)找不到的错误,${QTDIR}/lib目录下是存在这个文件的,并且也将这个目录加到库文件的搜索路径中了,设置了LIBRARY_PATH、LD_LIBRARY_PATH等环境变量都没有用,将库文件复制到toolchain的lib目录下则可以找到。后来google了一下,链接时强制设置一下rpath就OK了。

view plaincopy to clipboardprint?

...   

  

TMAKE_LFLAGS        = -Wl,-rpath ${QTDIR}/lib   

  

...  

...

TMAKE_LFLAGS  = -Wl,-rpath ${QTDIR}/lib

...

增加以下文件:

${QTDIR}/make.sh

view plaincopy to clipboardprint?

#!/bin/bash      

  

APP=$1   

  

progen -o ${APP}.pro   

tmake ${APP}.pro -o Makefile   

make   

rm -f *~ moc_*.cpp *.o ${APP}.pro Makefile  

#!/bin/bash   

APP=$1

progen -o ${APP}.pro

tmake ${APP}.pro -o Makefile

make

rm -f *~ moc_*.cpp *.o ${APP}.pro Makefile

${QTDIR}/test/ezxSample/build.sh

view plaincopy to clipboardprint?

#!/bin/bash      

  

APP=ezxSample   

  

${QTDIR}/make.sh ${APP}  

#!/bin/bash   

APP=ezxSample

${QTDIR}/make.sh ${APP}

编译ezxSample:

(1) 进入E8_EZX_SDK_v1.1所在目录,执行:

     . env.sh

(2) 进入ezxSample目录,执行:

     ./build.sh

不过把编译出来的elf放到手机上不能运行了,执行出错,后来发现是FTP上传elf文件传输不全,几十KB的文件到了手机上就只有几百字节了,难怪运行出错,索性直接拷贝了一个现成的mgx,将编译出来的ezxSample替换进去重新打包成mgx,再用FTP上传到手机中安装,在MagicBox中运行成功。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

474

主题

476

帖子

0

粉丝