x3399linux平台用户手册_第1页
x3399linux平台用户手册_第2页
x3399linux平台用户手册_第3页
x3399linux平台用户手册_第4页
x3399linux平台用户手册_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本手册归属市九鼎创展科技所有,并保留一力非九创同(式)何位个不擅摘录本手册部分或全部,违者其。敬告在售开发板册会经常更新,请在手册,不再另行通知版本说如果您对文档有所疑问,您可以在办公时间(星期一至星期五上午9:00~12:00;下午 、留言到BBS(。::销售 E- 销售与服务网络 :号X4418/ibox4418x6818/ibox6818x3288/x3399 ...................................................................................................................2第1章编译 编译 第2章烧写linuxQT映 第3章QT文件系统的搭 buildroot 配置 编译 安装QT 第4章qttest测试程 使用QT_demo测试LED 使用QT_demo测试U 第5章linux底层开发示 mp3 挂载TF 挂载U 第6章linux应用开发示 o mplayer移 第7章安装debain操作系 安装debain源码 编译 更新 第8章其他产品介 第1安装依赖包sudoapt-getsudoapt-getinstallgit-coregnupgflexbisongperflibsdl1.2-devlibwxgtk3.0-devbuild-essentialzipcurlzlib1g-devgcc-multilibg++-multilibsudoapt-getsudoapt-getinstallgit-coregnupgflexbisongperflibsdl1.2-devlibwxgtk3.0-devbuild-essentialzipcurlzlib1g-devgcc-multilibg++-multilibgenromfslibc6-dev-i386libncurses5-devx11proto-core-devlibx11-devccachelibgl1-mesa-devlibxml2-utilsxsltprocunzipgperflsb-corelib32z1-devlib32ncurses5-devlzop系统时,请使用android6.0的源码包。 -在android6.0源码下执行如下命令编译uboot,编译完成后映像文件RK3399MiniLoaderAll_V1.05.bin(因版本不同,名称不一定相同)以及uboot.img会到out/release -linux内说明:QTandroid6.0android的内核,请使用android6.0的源码包。 -android源码下执行如下命令编译linuxkernel.img、resource.img会到out/release -编译linux文件系 - - sudoapt-getinstall 再执行./mk.shb指令即可正常编译了。编译完成后,最终打包好的文件系统linux-rootfs.imgout/releaseQT5.6QT inux.img文件系 - -updainux.img为整个QT系统升级文件的单一映像,包括了uboot,内核,文件系统统,。Windows下烧写映像文tools\x3399烧写工具\windowsDriverAssitant_v4.5.zip文件,打开 tools\x3399烧写工具\windows下的AndroidTool_Release_v2.38.zip文件,得到AndroidTool_Release_v2.38文件夹,打开AndroidTool.exe,选择“升级固件”选项卡,LOADER设备,然后点击升级,即可开始升级过程(注:如果提示发现一个ADB设备,点击切换按钮切换成LOADER设备即可。解压光盘tools\x3399烧写工具\windows下的FactoryTool-v1.42e.rar文件,打开3USB、DCrecovery键(VOL+键)USB口发linux下烧写映像文件 work@ubuntu:~/LinuxUpgradework@ubuntu:~/LinuxUpgradeToolv1.24$cp work@ubuntu:~/LinuxUpgradeToolv1.24$sudo CDDI命令 config.iniUF即可升级,请用上一节介绍了通过upgrade_tool烧写固件updainux.img的方法,熟悉三星迅速。其实,upgrade_tool工具同样支持类似于fastboot的烧写方式。到out/release。第一步:打开串口终端,并打开,用于适时串口调试信息第二步:按住RECOVERY键,连接USBOTGuboot打印信息将会提示已经进入USB模式。如果接通电源后没来得及按住RECOVERY键,在按住RECOVERY键的同时,再按下复位键即可。out/release sudo–kkernel.img(烧写内核sudo–ssystem.img(烧写文件系统sudoresourceresource.img(烧写资源文件sudosudoRK3399MiniLoaderAll_V1.05.bin烧写sudoubootuboot.imgparameter.txt(uboot,必须指sudo sudowork@ubuntu:~/rktool$sudoapt-getinstallbuild-essentialfakerootwork@ubuntu:~/rktool$gitclone work@ubuntu:~/rktool$cdrkflashkitwork@ubuntu:~/rktool$work@ubuntu:~/rktool$sudoapt-getinstallbuild-essentialfakerootwork@ubuntu:~/rktool$gitclone work@ubuntu:~/rktool$cdrkflashkitwork@ubuntu:~/rktool$./wafwork@ubuntu:~/rktool$sudoapt-getinstallpython-gtk2行ls命令查看下即可。 work@ubuntu:~/rktool/rkflashkit$work@ubuntu:~/rktool/rkflashkit$rkflashkit--helpUsage:<cmd>[args][<cmd>[args]...] List Flashpartitionwithimagecmp@<PARTITION><IMAGEFILE> Comparepartitionwithimagefilebackup@<PARTITION><IMAGEFILE>Backuppartitiontoimagefile Erasepartition RebootForexample,flashdevicewithboot.imgandkernel.img,thenreboot:sudorkflashkitflash@bootboot.img@kernel.imgkernel.imgreboot第3QT buildroot将的buildroot包拷贝到ubuntu系统用户 并解压,得到buildroot 令终端进入buildroot ,执行make 进入options菜单 退回上一级,进入packages ,再进入Graphiclibrariesandapplications ,选择Qt5,如下图所示:Qt,它对应QT4.8版本。进入Qt5 cp.config到此,buildroot配置完成。默认配置保存在buildroot根 的.config中,可以备cp.configmakebuildrootbuildroot会会依赖一些第rootfs.ext2output/images。测试QT5默认示 ogclock这时,在开发板上可以看到有一个时钟图案被绘制出来(会覆盖默认的QTTEST程序),./rasterwindow ./rasterwindow ./windows./windows ./drilldown./drilldown ./books ./books./masterdetail ./masterdetail 通常使用QTCreator创建基于QT的工程。在QT官网的QT安装包,下到ubuntu的用 编译QTCreator开ImageCompositionExample示例,它是一个叠加显示的示例,找到该示例,单击即下面该示例编译到开发板上运行。使用QTCreator打开上面的示例工程,如下选择Projects1DesktopQt5.5.0GCC64bit64位的GCC2debugrelease模式,debug模式34qmake5为调试按键,第四个为编译按钮。框图6为一些输出信息,如CompileOutput,会给出整个编译的信息。在左测框中选择Build&Run,在后边选择QtVersions,默认Manual为空,Auto-detected选择默认的qmake,它将运行在X86平台的linux系统上,因此要手动添加在ARM平台上运行的qmake。Manual为空,Auto-detected为支持X863264位的GCC,这将直接导致编译出来只能在PC机上运行。点击Add,选择GCC,如下图所示:在Name中重命名,以区别ARM和PC平台,如命名为GCC-ARM-LINUX,它将再回到QT的工程界面,发现框图1中的配置仍然针对PC机,点击框图1中注意,这时默认Manual仍然为空,点击Add,会弹出一个有很多选项的 第4qttest测试程QT_demoLED使用QT_demo测试蜂鸣进入QT5.6.1系统后,默认会运行自主编写的测试demo,测试界面如下使用QT_demo调节使用QT_demo测试使用QT_demo测试使用QT_demo测试触摸 使用QT_demo测试连通,则会添加DNS,如果没有连通,则会提示相应错误,如下图所示:QT_demoTFQT_demoUU盘接到开发板的任何一个USBHOSTUdiskTest,数据框中会列出使用QT_demo测试点击Reboot使用QT_demo测试第5linux底层开5.1 连接串口后,可以通过PC09 在运行程 的指令后面添加一个”&”即可。如音乐时使用如下命令: 中止程序的运段音频文件,可以按ctrl+c退出程序。但是如果程序在运行,那么按ctrl+c就不管用了。这时可以使用kill命令。屏幕抓图 本文档中的各个,都是采用gsnap这个工具进行抓图的。进入QT图形界面后,我 这时在当前test_pic.jpggsnap移植步骤在后面会有详细TF的内容。将TF卡插到开发板的任意卡槽,串口终端会有如下提示: 将会自动生成一个名叫mmcblk1p1的块设备文件。它就是对应的TF卡的 查看 下的内容,即是TF卡中的内容,如下图所示的内容。U盘后,串口终端会有如下提示: U盘设备文件, 查看 保存系统时钟 掉电保存数据到cp qu.mp3ext4文件系统,因此可以很方便的保存数据,确保掉电后数据不丢失。如从Ucp qu.mp3重启开发板,发现在root仍然存在刚才拷备的这首歌曲,说明掉电后数据并设置开机自动运行程序自动批处理文件。启动位于/etc/init.d/rcS中,可以将自己想要开机运行的程序或是 这时,开机后就会名叫start.mp3的音乐了。注意start.mp3需要在当前执行指令所在。查看开发板内存信息X33992GBLPDDR3SDRAMuboot第6linux应用开本手册给出的所有应用程序全部在九鼎创展x3399开发板上运行,这里仅给出了一些 o在 o.c和makefile两个文件 这是一个最基础的应用程序,如果 了交叉编译工具(exporto o.c- o o.c- o可执行文件,可以使用file命令查询执行文件是否为ARM体系文件: 到 aarch64-linux-gnu-gcc–ooo.crm oaarch64-linux-gnu-gcc–ooo.crm o 数学函数库调mkdirmkdircdmathvimmath.c#include<stdioh>#include#include<stdioh>#include<stdlib.h>#include<math.h>int{doublea=9.0;return}LDFLAGS=-lm-static${CC}-o$@$^rm-fmath${CC}-o$@$^rm-fmath多线程编程示mkdirmkdircdthreadvimthread.c#include<stddefh>#include<stdioh>#include<unistdh>#include"pthreadh"voidfunction1(void);voidfunction2(void);int#include<stddefh>#include<stdioh>#include<unistdh>#include"pthreadh"voidfunction1(void);voidfunction2(void);intfunc_flag=0;{pthread_treader;}void{{{}}}}void{{{}}}LDFLAGS=-lpthreadLDFLAGS=-lpthread-${CC}-o$@$^rm-fthreadmakethread多进程编程示Linuxforkfork时,系统将产生一个与当前进#include#include<unistd.h> pid= {pid_tpid;if(pid<0){return1;}elseif(pid=={while{printf("thechildprocessisrunningnow.pid=%d\n",getpid());sleep(1);//linux延时函数,延时1秒}}{while{printf("theperentprocessisrunningnow.pid=%d\n",getpid());}}return}LDFLAGS=-lpthread-${CC}-o$@$^rm-fprocess ${CC}-o$@$^rm-fprocessmakefile编程示在上面的很多测试程序实例中,都编写了一些简单的makefile文件。下面介绍makefile的基本的语法。这里给出三个文件:main.c,func.c,func.h。主程序在main.c中,在main.c中程序会调用func.c中的函数,func.c中的函数又会用到func.h中定义的变量。#include#include"func.h"externintfd;intmain(intargc,char{if(fd==-1){printf("opendevice%serror\n",DEVICE_NAME);return0;}{printf("opendevice%sok!}{}returnreturn}#includevoid{}#includevoid{}#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/ioctl.h>#defineDEVICE_NAME #defineLED_ON0x11#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/ioctl.h>#defineDEVICE_NAME #defineLED_ON0x11intLED测试程序,人为的分成的三个文件。的目的不在于分离代码,而在于学习makefile的编写方法。aarch64-linux-gnu-gcc-omkfilemain.ofunc.oaarch64-linux-gnu-gcc-cmain.c-omain.ofunc.o:func.cfunc.haarch64-linux-gnu-gcc-cfunc.caarch64-linux-gnu-gcc-omkfilemain.ofunc.oaarch64-linux-gnu-gcc-cmain.c-omain.ofunc.o:func.cfunc.haarch64-linux-gnu-gcc-cfunc.c-orm-fmkfilemakemain.cfunc.cmain.ofunc.o文件,最后将这两个.o文件打包到可执行文件mkfile中。这时将mkfile文件到开发板运行,效果和前面的是一样的。可以执行makeclean指令清除生成的.o文件和可执行文件。rm-fmkfilerm-fmkfile可见,这次比上面的完整版要简化多了。前面通过变量OBJS定义了要编译的源文件,变量CC给出了交叉编译工具。$@表示目标文件的全称,即mkfile,$^表示所有被依赖的文件,并以空格分开,即main.ofunc.o。后面的clean为清除指令,执行makeclean后会执行clean后面的指令。需要注意的是,rm指令后面千万不要使用$@符号来表征要删除的目标文件,因为这时候$@已经不再表示mkfile了,而表示clean。同样,使用make指令 文件mkfile。main.ofunc.o,第二句定义了变量CC,将它赋值为一个交叉编译工具定义。变量时,称为my.so(image.o),则$@为my.so,而$%为image.o${CC}-o$@rm-fmkfile对比以上几种编译方式,不然发现,其实最简的还是第一种,因为它就一句话就${CC}-o$@rm-fmkfile发现,单独对main.c和func.c两个文件编译的指令已经去掉了。前面提到,makefile具有强大的推理功能,在生成目标文件mkfile时,makefile会推理出它需要main.c和mplayer移有两种移植mplayer,第法就是直接mplayer源码包,手动配置编译环境,再通过交叉编译环境编译。该方法比较传统,有更方便的方法,直接在buildroot中选在buildroot的config配置选项中,进入packages->Audioandapplica

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论