开发版光盘平台用户手册_第1页
开发版光盘平台用户手册_第2页
开发版光盘平台用户手册_第3页
开发版光盘平台用户手册_第4页
开发版光盘平台用户手册_第5页
已阅读5页,还剩108页未读 继续免费阅读

下载本文档

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

文档简介

本手册归属市九鼎创展科技所有,并保留一切权力。非经九鼎创展同意(形式),任何单位及个人不得擅自摘录本手册部分或全部,违者其。在售开发板的手册会经常更新,请在http 1:30~6:00)拨打技术话,或E-mail联系,或留言到BBS。 地址:市宝安区西乡街道宝源路宝安互联网产业A区7栋301室:QQ:【】【】【】【】【】【】【】 第1章android4.0开发平台的搭 使用U盘安装 使用wubi安装ubuntu系 ubuntu下磁盘格式 Ubuntu下通过SSH登录服务 ubuntu下使用邮 ubuntu下安装五 ubuntu下安装chrome浏览 ubuntu下安装 ubuntu打开WINDOWS下记事本乱码问 ubuntu卡死的解决办 第2章android开发工 adb工 安装adb工 进入adbs..................................................................................................第3章android4.0源码开发环境的搭 指定GCC交叉编译 安装android源码 第4章android分 第5章源码编 编译针对inand的 编译针对nand的 编译 编译i210平台的 编译针对inand的android内 编译i210平台针对inand的android内 编译针对nand的android内 编译i210平台针对nand的内 编译针对inand的android文件系 编译针对nand的android文件系 第6章映像文件的烧 ubuntu下fastboot的安 安装 ubuntu下烧写映像文件到nand 第7章android开发指 mp3 android命令行 使用android默认音频 ................................................................................................................. 使用WIFI上 使用USB鼠 使用USB键 APK应用安 使用SD卡安 使用ApkInstaller安 使用adb工具安 挂载SD 挂载U 计算 输入 浏览 优 网页......................................................................................................... 酷 .....................................................................................................................1080P...................................................................................................... QQ .........................................................................................................................VGA显 显 开关 第8章android内核驱 USB接口WIFI驱 VGA驱 驱动 android系统的wake_lock机 proc文件系 CPU信息查 第9章x210ii项目实 x210iinandflash和inand启动速度对照 第10章其他产品介 6410 210 4412 6410开发 210开发 4412开发 第1章android4.0Android4.0PC机PCubuntu12.0464位系统机器为例讲解,如果您是新手,建议与我U使用wubiubuntuubuntuubuntuwindows为主的朋友,每entry {insmodpart_msdosinsmodntfssetsearch--no-floppy--fs-uuid--set0E48A65048A6367Ddrivemap-s(hd0)${root}chainloader} ###BEGIN/etc/grub.d/30_os-proberentry {insmodpart_msdosinsmodntfssetsearch--no-floppy--fs-uuid--set0E48A65048A6367Ddrivemap-s(hd0)${root}chainloader}###BEGIN/etc/grub.d/10_linuxentry'Ubuntu,withLinux2.6.35-30-generic'--classubuntu--classgnu-linux--class--classosinsmodext2setsearch--no-floppy--fs-uuid--set4833f619-6388-4dd3-acd7-6fa3eacb9a15 root=UUID=4833f619-6388-4dd3-acd7-6fa3eacb9a15ro quiets }LinuxfdiskmkfsSDfdisk指令删 wdw写入,完成分区的删除。再按n,mkfs工具格式化为指定格式的盘,如格式化为fat32格式,则执行如下指令: Ubuntu下通过SSH登录服务servicesshservicesshnetstat-tcpnetstat-tcp00*:ssh*:*LISTEN$ssh-lliuqiming方式登录服务器,点击位置->ssh,服务器一栏填入服务器的IP地址,点击连接即可。ubuntuchromeubuntu10.10默认安装的火狐浏览器,如果用户喜欢该浏览器,可以跳过此节。出了基于linux的浏览器chrome,用户可以使用如下方式安装。在网上安装源文件, ubuntusudoapt-getinstallubuntuWINDOWS出现这种情况的原因是,gedit使用一个编码匹配列表,只有在这个列表中的编码才会GB18030加入这个匹配双击右边的auto_detected键,打开“编辑键”框现在,geditGB18030编码的文本文件了。如果不放心,可以再增加GBK、GB2312编码。sudoapt-getinstallsudoapt-get FGNoSavesetupasdflroot用户方案,插上USB转串口延长线后,输入如下命令查询驱动是否正常加载:lsmod|greplqm@lqm:~$lsmod|greppl2303 3dmesg|taildmesg|tail-lqm@lqm:~$dmesg|tail- 383.093851]ERROR!H2M_MAILBOXstillholdbyMCU.commandfail 383.148849]--->RTMP RTUSBdisconnectsuccessfully 387.762330]usb2-4:USBdisconnect,address3 387.762566]pl2303ttyUSB0:pl2303converternowdisconnectedfromttyUSB0 387.762601]pl23032-4:1.0:devicedisconnected 392.164589]usb2-4:newfullspeedUSBdeviceusingohci_hcdandaddress5 392.379898]pl23032-4:1.0:pl2303converterdetected 392.412998]usb2-4:pl2303converternowattachedtolqm@lqm:~$dmesg|tail-f 408.910351]0x1300= 419.392535]wlan0:noIPv6routerspresent 一般情况下重插拨一次USBubuntuwindows系统一样,卡死不动。这时除了复位系统,我们也可ps-第2章androidlinuxEmacs、KVIM、Arachnophilia、Bluefish、KomodoEdit、NEdit、Gedit、Kate、QuantaPlus等等。这里介绍两款比较优秀的代码编辑软件,slickedit和eclipse。第一步:解压 tar-zxvf sudoDoyouagreetothesudoDoyouagreetotheabovelicenseterms?[yesor输入Directory/opt/slickedit/doesnotexist.Create输入Y,回车,Youmaywanttoadd"/opt/slickedit/bin/"toyourusers' sudocpvscd cdcd$sudocpvse_profile_256.bmp$cd$sudogeditcd$sudocpvse_profile_256.bmp$cd$sudogedit[DesktopEntry]这时,在应用程序->编程中,就能找到slickedit rm-rf附:slickedit行号显示:ubuntu选择EclipseIDEforJavaDevelopers,Linux32Bit或Linux64Bit根据自己的机器而定; cd~sudocpicon.xpm/usr/share/icons/eclipse.xpm第四步:安装CDT安装eclipse后,还不能建立C/C++工程,需安装插件。进入官网 第一步:打开ecipse,次打开时,会提示选择工作路径,建立自己的路径,确定即可;击Fie>Ne>Projct择/C++>CPojt击Nex,在Pojectname如xboot在Pojctname下面有一个Usedefultlocaton击Browse,指向我们需要修改的文件的 。在ProjecttypeSharedLibrary->EmptyProject,在Toolchains击Finish完成。ProjectExplorerxboot的xbootImportGeneral->FileSystem,双击,弹出Import框,在Fromdirectory中找到需要加载的文件的,SelectAllFinish按钮,提示是否覆盖.cproject,点击YesToAll,这时我们需要编辑的文件就已经全加载到工程中了。/sdk/index.html对于WINDOWS系统,需installerr12-windows.exe,如下图所示如果PC机上没有安装JDK,会提示需要先安装,需从java官网,如装在C盘,建议安装在D盘,这时adb工具在下面的路径:修改系统环境变量,找到Path环境变量,面添面中的adb.exe和AdbWinApi.dll拷贝到C:\WINDOWS\system32中即可。x210开发板,进入控制台,然后用USB线连通开发板与PC机,首次连接时,会x210_android_driver的路径,点下一步安装直到完成。进入WINDOWSCMD adb exit退回DOSadbdevices命令时,会提示error:morethanonedeviceandemulator,很有可能是了USB设备造成的。这时已经无法再通adbwindowsadb.exe,再启动adb即可。章JDKsudoapt-getinstallgit-coregnupgsun-java6-jdkflexbisongperflibsdl-devlibwxgtk2.6-devbuild-essentialzipcurllibncurses5-devzlib1g-devgenromfs在ubuntu下手动安装jdk1.6的详细步骤: sudo./jdk-6u27-linux-i586.binsudogeditsudogedit#setjavaenvironmentexportexportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATHjavaversion"1.6.0_27"Java(TM)SERuntimeEnvironment(build1.6.0_27-b07)JavaHotSpot(TM)ServerVM(build20.2-b06,mixedmode)sudoupdate-alternatives--install/usr/bin/javajava/usr/lib/jvm/jdk1.6.0_27/bin/java255sudoupdate-alternatives--install/usr/bin/javacjavac/usr/lib/jvm/jdk1.6.0_27/bin/javac255sudoupdate-alternatives--configjavaThereare2choicesforthealternativejava(providing选 路 优先级状* 要维持当前值[*]jdk版cdvimsources.list apt-get将光盘中 可查询GCC的版本:gccgcc(Ubuntu/Linaro4.6.3-1ubuntu5)4.6.3Copyright©2011 SoftwareFoundation,Inc.决办法:sudoapt-getinstallgcc-4.4g++-4.4g++-4.4-cdsudomvgccgcc.bksudoln-sgcc-4.4gccsudomvg++sudoln-sg++-4.4从光盘中拷贝android源码包x210_ics_rtm_v11.tar.bz2,放在自己的用户名 tarxvfx210_ics_rtm_v11.tar.bz2这时,整个android文件系统全部都放在了当前解压的 第4章android分 #Description #Authors :http# :#Notes # #必要的一些工具路径RELEASE_DIR=${SOURCE_DIR}/out/release#生成映像汇总的路径 #编译后生成的路径KERNEL_DIR=${SOURCE_DIR}/kernel#内核路径BOOTLOADER_UBOOT_SD_CONFIG=x210_sd_config#针对inand的uboot编译配置BOOTLOADER_UBOOT_NAND_CONFIG=x210_nand_config#针对nand的uboot编译配置BOOTLOADER_XBOOT_CONFIG=arm-mpad#xboot编译配置 #针对nand的kernel配置KERNEL_INAND_CONFIG=x210_android_inand_defconfig#针对inand的kernel配置FILESYSTEM_CONFIG=PRODUCT-full_x210-eng#编译android4.0时指定开发板型号export #mkimage工具的路#计算出PC机的CPU有几个核,以加快编译速度CPU_NUM=$(cat/proc/cpuinfo|grepprocessor|wc-l){cdmkdir-p${RELEASE_DIR}||return1;mkdir-p${TARGET_DIR}||return}#编译针对ubootbootloader{cd${SOURCE_DIR}/uboot||return1makedistclean||return1;make${BOOTLOADER_UBOOT_NAND_CONFIG}||return1;make-j${CPU_NUM}mvu-boot.binif[-fuboot_nand.bin];cpuboot_nand.bin${RELEASE_DIR}/uboot.binecho"^_^uboot_nand.binisfinishedsuccessful!"return}{cd${SOURCE_DIR}/uboot||return1makedistclean||return1;make${BOOTLOADER_UBOOT_SD_CONFIG}||return1;make-j${CPU_NUM}mvu-boot.binif[-fuboot_inand.bin];cpuboot_inand.bin${RELEASE_DIR}/uboot.binecho"^_^uboot_inand.binisfinishedsuccessful!"return}{if[!-f${RELEASE_DIR}/zImage-initrd];echo"notfoundkernelzImage-initrd,pleasebuildkernelreturnif[!-f${RELEASE_DIR}/zImage-android];echo"notfoundkernelzImage-android,pleasebuildkernelfirst">&2return1#copyzImage-initrdandzImage-androidtoxboot'sromdisk #compilercd${SOURCE_DIR}/xboot||return #rmzImage-initrdandzImage-rm-fr${SOURCE_DIR}/xboot/src/arch/arm/mach-mpad/romdisk/boot/zImage-initrd#copyxboot.bintoreleaseechoecho"^_^xbootpath:${RELEASE_DIR}/xboot.bin">&2return0}#编译针对nand{cd${SOURCE_DIR}/kernel||returnmake${KERNEL_NAND_CONFIG}||return1make-j${threads}||return1 bs=2048count=8192conv=sync;echoecho"^_^androidkernelfornandpath:return}{cd${SOURCE_DIR}/kernel||returnmake${KERNEL_INAND_CONFIG}||return1make-j${threads}||return1 bs=2048count=8192conv=sync;echoecho"^_^androidkernelforinandpath:return}#编译android4.0.4文件系统,这时 {#installandroid#installandroidappcp cd${SOURCE_DIR}||return#create{return1; #createcd${TARGET_DIR}/data||{echo"Error:Couldnotenterthe${TARGET_DIR}/datadirectory.";return1;}rm-fr${TARGET_DIR}/data.tar||{return1;tarcvf${TARGET_DIR}/data.tar./*||{return1;#createcd${TARGET_DIR}/system||{echo"Error:Couldnotenterthe${TARGET_DIR}/systemdirectory.";return1;}tarcvf${TARGET_DIR}/system.tar./*||{return1;#cp-av${TARGET_DIR}/installed-files.txt${RELEASE_DIR}/||return1;#cp-av${TARGET_DIR}/installed-files.txt${RELEASE_DIR}/||return1;cp-av${TARGET_DIR}/android.img.cpio${RELEASE_DIR}/||return1;cp-av${TARGET_DIR}/android.img.cpio${KERNEL_DIR}/||return1;cp-av${TARGET_DIR}/system.img${RELEASE_DIR}/x210.img||return1;#cp-av${TARGET_DIR}/system.tar${RELEASE_DIR}/||return1;cp-av${TARGET_DIR}/userdata.img${RELEASE_DIR}/||return1;#cp-av${TARGET_DIR}/data.tar${RELEASE_DIR}/||return1;echoecho"^_^systempath:#createuboot_img#echo'******Makeramdiskimageforu-boot#mkimage-Aarm-Olinux-Tramdisk-Cnone-a0x -n"ramdisk"-dramdisk.img#rm-framdisk.imgreturn}#打包android4.0.4文件系统,这时 {mkdirx210_rootcp./out/target/product/x210/system/lib/libstagefright* cp./out/target/product/x210/root/* ./x210_root/-acp ./x210_root/-#cp cp cp #cp./vendor/9tripod/usr/* #cp./vendor/9tripod/bin/* ./x210_root/system/bin/-arm od777./x210_root/system/bin/bluetoothd od777./x210_root/system/bin/pand #rm-rf./x210_root/system/busybox#tarzxvf./vendor/9tripod/busybox.tgz-C./x210_root/system/mkyaffs2imagex210_root/x210.imgmvx210.img$RELEASE_DIR/}{#checkimageif[!-f${RELEASE_DIR}/xboot.bin];echo"notfoundbootloaderxboot.bin,pleasebuildbootloader">&2return1if[!-f${RELEASE_DIR}/zImage-initrd];echo"notfoundkernelzImage-initrd,pleasebuildkernelfirst">&2return1if[!-f${RELEASE_DIR}/zImage-android];echo"notfoundkernelzImage-android,pleasebuildkernelfirst">&2return1if[!-f${RELEASE_DIR}/system.tar];echo"notfoundsystem.tar,pleasebuildsystem">&2return1if[!-f${RELEASE_DIR}/data.tar];echo"notfounddata.tar,pleasebuildsystem">&2return1rm-fr${RELEASE_DIR}/update.bin||return1;mkdir-p${RELEASE_DIR}/tmp||return1;#copyimagecp${RELEASE_DIR}/zImage-initrd${RELEASE_DIR}/tmp/;cp${RELEASE_DIR}/system.tar${RELEASE_DIR}/tmp/;cp${RELEASE_DIR}/data.tar#createcdfind.-typef-print|whilereadline;doif[$line!=0];thenmd5sum${line}>>#genromfs-v-d${RELEASE_DIR}/tmp/-f${RELEASE_DIR}/update.bin||returncd${SOURCE_DIR}||returnrm-fr${RELEASE_DIR}/tmp||return1;return0;} if[-z$1]; while["$1"];docase"$1"cat>&2<<EOFBuildscriptforcompilethesource echips usingnthreadswhenbuildingsourceproject(example:- buildbootloaderubootforsdfromsource buildbootloaderubootfornandfromsource buildbootloaderxbootfromsource buildkernelfornandflashandroidandusingdefaultconfig buildkernelforinandflashandroidandusingdefaultconfig-s,-- buildfilesystemfromsource buildyaffs2android genupdatepackage buildall,include-h,--help ythishelpandexitexitecho"mk:Unrecognisedoption$1">&2exit1setup_environment||exitif["${system}"=yes];thenbuild_system||exitif["${yaffs_system}"=yes];thenbuild_yaffs_image||exit1if["${kernel_nand}"=yes];thenbuild_kernel_nand||exit1if["${kernel_inand}"=yes];thenbuild_kernel_inand||exit1if["${uboot_nand}"=yes];thenif["${uboot_inand}"=yes];thenif["${xboot}"=yes];thenif["${update}"=yes];thengen_update_bin||exitexit当映像存放在SD卡中时,android的初始化init.rc是会打包在android.img.cpio文init.rcandroid源码,再重新编译,这样会浪费android.img.cpioinit.rc文件后,再android.img.cpio的脚在android源码 Modifytheandroid.img.cpiounzipthe #create:# #echo"1.unziptheimage"echo"3.exit" SOURCE_DIR=$(cd`dirname$0`;pwd)read-p"Choose:"if["1"=${CHOOSE}];thencd${TARGET_DIR}[-e"tmp"]||{echo"mkdirtmp";mkdir[-e"android.img.cpio"]||{echo"error!can'tfindandaroid.img.cpio!";exit;}cdtmp#解压cpiocpio-idmv--no-absolute-filenames<../android.img.cpioecho"^_^unzipandroid.img.cpiofinished!"elif["2"=${CHOOSE}echo"createandroid.img.cpio[-e"${TARGET_DIR}/tmp"]||{echo"can'tfind[tmp],pleaseunzipandroid.img.cpiofirst!";exit;}rm-f#打包cpio文件包{exit; rm-rf${TARGET_DIR}/tmpecho"^_^Createandroid.img.cpiofinished!"elif["3"=${CHOOSE}];then第5x210ii开发板可选配inand或nandflash的,二者程序是有区别的,但是共用:inand在android源码 到out/release nand在android源码 到out/release xboot仅支持inand平台。在android源码 映像文件xboot.bin会释放到out/release i210平台的 inandandroid 在android源码 i210平台针对inandandroid 删除x210_android_inand_defconfig文件,将i210_android_inand_defconfig nandandroidandroid源码下执行如下命令编译androidzImage会释放到out/release。 删除x210_android_nand_defconfigi210_android_nand_defconfig重命名为 android根下是否存在outout,android源码下执行如下命令编译androidx210.img会释放到out/release。 inandandroid文件系统后,其实针对nand的文件系统也已经编译好了, 第6在编译完android文件系统后,将会在out/host/linux-x86/bin 将fastboot文件拷贝到ubuntu的/sbin ,或者将out/host/linux-x86/bin这个 #adbprotocolonpassion(Nexus#fastbootprotocolonpassion(NexusSUBSYSTEM=="usb",ATTR{idVendor}=="0bb4",ATTR{idProduct}=="0fff",MODE="0666",#adbprotocoloncrespo/crespo4g(Nexus#fastbootprotocoloncrespo/crespo4g(Nexus#adbprotocolonstingray/wingray#fastbootprotocolonstingray/wingray#adbprotocolonmaguro/toro(Galaxy#fastbootprotocolonmaguro/toro(Galaxy#adbprotocolonpanda#fastbootprotocolonpanda#usbbootprotocolonpanda#fastbootprotocolon#usb->uart注意,OWNER里面填的”terry务必换成自己ubuntu系统的用户名。之后将51-android.rules文件到 下ubuntunandnandflashubuntulinuxnand第一步:进入android源码 ./mk- nandflash中,这里一定要生成uboot_nand.bin文件,如果uboot_inand.bininanduboot下的mk。sudofdisk/并执行烧录SD卡映像cd首次烧录时,查询在uboot/sd_fusing 下make一下,就生成了。再执行如下指令sudobash./nand_fusing.sh第三步:将SD卡插到x210ii开发板的右侧卡槽,将拨码开关拨至从SD卡启动,再启动 82012-11:40:21)for APLL=1000MHz,HclkMsys=200MHz,PclkMsys=100MHzMPLL=667MHz,EPLL=96MHzHclkDsys=166MHz,PclkDsys=83MHzHclkPsys=133MHz,PclkPsys=66MHzSCLKA2M=200MHzSerial=CLKUART 8MB0MB 512***Warning-usingdefault checkingmodeforfastboot...Hitanykeytostopautoboot: SMDKV210#fastbootFastboot:employdefaultpartitioninformation[PartitiontableonNAND]ptn0name='bootloader'start=0x0ptn1name='recovery'start=0x100000len=0x500000(~5120KB)ptn2name='kernel'start=0x600000len=0x500000(~5120KB)ptn3name='ramdisk'start=0xB00000len=0x300000(~3072KB)ptn4name='system'start=0xE00000len=0x ptn5name='cache' len=0x3C00000(~61440KB)ptn6name='userdata'start=0xCC00000len=N/A fastbootflashbootloaderuboot.binOKAY[0.086s]OKAY[finished.totaltime:nand启动,开机,发现去掉SD卡后,也能启动了。说明uboot已经成功更新到nandflashfastboot,然后在另外一个终端进入out/release,执行如下指令烧写剩下的映像文件:fastbootflashkernelwindowsnandnandflashfastbootubuntu在windows下使用DNW烧写说明:使用DNW烧写映像,我们只在WindowsXP第一步:烧写x210_usb.bin文件,初始化210处理器相关寄存器将跳线的OM5ON状态,使用标准串口线连接PCUSB延长线(USBminiUSB头)USBDevice接口,打开电源总开关,同时按住POWER键不放,这时,PC机会自动检测到有新硬件,并要求安装驱动。选择第一项,选中在搜索中包括这个位置,点击浏览,找到x210USB驱动 安装完毕,DNWUSB栏就会有OK 点击USBPort->Transmit第二步:uboot.bin文件到RAM运可以看到,uboot已经运行起来了。注意,这时程序已经软置锁,即到这个时候,我们第三步:格式化nandflashnandnand第四步:uboot.bin到nanddnwdnwnandnanderase0nandwrite 0这时,uboot已经成功写入nandflash在windows下使用DNWdnwdnw在windows下使用网口更新操作,不再使用DNW。ipconfigipconfig 使用普通网线将网口连接到开发板和路由器,确保和PC机在同一网段路由,windowsxptftpTFTPD32是一个小巧,便捷的工具。我们可以通过它从服务器上uboot,kernel到目标板的DRAM。当我们使用本机上的虚拟机时,就用不着TFTPD32了。网上有人遇到这种情况,在WINXP的表中搜寻TFTPD32,将所有该表全删这时虚拟机就占用了TFTP,自然就会出现这种情况了。就算我们退出VMWare,在仍VMWare的使用到网络的进程,TFTPD32才不解决TFTPD32和虚拟机的比较合适的办法是,在我们使用服务器时,将虚拟机的69端口设置为UCP69端口设置为UDP模式即可。具体点击开始->程序->VMWare->VirtualNetworkEditor,在Type中选择NAT,如下图:点击Properties,将TPYETCP新选择UDP即可。TFTPD32SettingsBaseDirectory中选择映像放置的,如D:\x210_image,点击OK,Serviceinterface设置为WINXPIP地址,TFTP就可以正常使uboot映像到tftp nanderase0nandwritenanderase0nandwrite 0在windows下使用网口更新tftp 确保tftpd32工具在运行,执行如下指令内核映像到tftp nanderase600000nandwrite 600000nanderase600000nandwrite 600000在windowsfastbootAdbWinUsbApi.dll打开windows下令行终端,进入D:\fastboot ,执行fastbootdevices查询当前fastbootflashkerneld:\x210_image\zImagefastbootflashsystemfastbooterasecacheOM5ONUSBPC第二步:使用串口延长线连接PC机以及开发板的第三步:打开DNW,同时打开串口终端,注意,DNW默认具有串口的功能,但是操作不是很方便,推荐使用SerialCRT工具;第四步:长按开发板的右下脚POWER键,这时,DNW状态栏的USB一栏会显示OK,如第五步:将DNW的地址设置为0xd ,点击USBPort->Transmit,找到x210_usb.bin映像文件,双击,这时,DNW的USB一栏会显示USB:x后,再显示USB:OK,表明USB接口初始化成功;uboot.bin映像文件,双击,这时,串口终端会显示uboot的打印信息,表明uboot已运行起来了,到此,便可以松开POWER键了。第七步:执行fastboot可以看到,上面会提示没有MBR,这是因为,inand出厂时,是没有写MBR的, 第八步:从光盘中将fastboot 拷贝到PC机的某 ,如D盘根 第九步:将编译生成的映像文件拷贝到PC机的 第十步:打开第十步:打开PC ubuntuDNW软件,也就无法将程序直接到内存运行了。在inand中没有映像文件时,我们可inandubootSD2fastboot第二步:将SD卡插到开发板的右侧卡槽,即SD2通道;inand 第7章android mp3#usage:am mand]startanActivity:amstart[-D][-W]-D:enable-W:waitforlaunchtostartaService:amstartservicesendabroadcastIntent:ambroadcast-r:printrawresults(otherwisedecode-p<FILE>:writeprofilingdatato-w:waitforinstrumentationtofinishbeforestartprofiling:amprofile<PROCESS>start<FILE>stopprofiling:amprofile<PROCESS>stop<INTENT>specificationsincludethese[-c<CATEGORY>[-c<CATEGORY>]...][--esn<EXTRA_KEY>...][-e|--ei<EXTRA_KEY><EXTRA_INT_VALUE>...][--activity-launched-from-history][--activity-multiple-task] <activityandroid:name="Calculator"# # SD卡中在在mp3文件,需要注意的是,SD卡一定要插在右侧卡槽内。点击音乐,器会自动识别音频文件,如下图: 这时系统提示选择使用什么器,因为默认出厂时,我们已经将Rockyer装到x210开发板上了。任意选择一个器即可。如果遇到图库无法支持的文件,可以采用第器如Rockyer进行,rmvbrmrm/rmvb等格式的超强mp4了。如对屏幕尺寸有更高要求,可以使用后面的VGA或方式,使用Rockyer时,会弹出一个硬解和软解的框,如果属于210硬 浏览时,同样使用上面的图库浏览。点击图库图标,点击要浏览的即可浏览。滑动可以浏览下一张,如下图所示:WIFIUSBWIFIUSB的任意一个HOSTWi-Fi一栏的方框中有x210iiandroid4.0.4支持串行接口蓝牙模块,注意,使用蓝牙时,请务必先将蓝牙模块插到x210ii开发板的J13接口。androidroot权限,在平时做开发时,我们可以使用eclipse自带的插件进行截图,非常的方便。使用USBx210开发板与PC机连接,安装完成之后,打开eclipse软件,如果没有安装,需先安装该软件。然后点击SD U载U盘,也可以手动执行指令挂载,示例指令如下:mount-tvfat/dev/block/sda1mount-tvfatmount-tvfat/dev/block/sda1已经将强大的busybox移植到android4.0文件系统中。进入APP界面,打开DevTools,点击PointerLocationandroid默认自带一个浏览器,该浏览器功能已经非常完善了,如果用户仍然觉得不够要求,可以安装第浏览器,如UC浏览器等。210支持MPEG2,MPEG4等的硬,可以流畅的这些格式的1080P文件。使用Rockyer或者自带的器都可。注意,使用Rockyer时,一定要QQVGA注意,x210iiVGAVGAVGA转接板。同时,将1440*900,1280*1024等分辨率的VGA。显示支持直接将LCD上显示的还原到带有接口的电视机上,支持1080P,同时还将音频也一并传送到电视机上。但是有部分电视机支持的不x210ii开发板支持休眠唤醒功能,不仅电容触摸屏支持休眠唤醒,电阻触摸屏同样也支持。在进入系统之后,轻按POWER键,这时整个屏幕全部熄灭,系统进入低功耗模式。再次按下POWER键,将会唤醒机器,进入工作模式。这对于使用电池供电的手持设备来说,第8章androidUSBWIFIVGA linux休眠过程powermanagementnotifiersareexecutedwithtasksaretargetsystemsleepstateisannouncedtothetform-handlingdevicesaretform-specificglobalsuspendpreparationmethodsarenon-bootCPUsaretakenoff-interruptsaredisabledontheremaining(main)latesuspendofdevicesiscarriedoutBUSdriver的动作进行tform-specificglobalmethodsareinvokedtoputthesystemtolinux唤醒过程themainCPUisswitchedtotheappropriatemode,ifearlyresumeofdevicesiscarriedoutBUSdriver的动作进行interruptsareenabledonthemainnon-bootCPUsaretform-specificglobalresumepreparationmethodsaredevicesarewokentasksarepowermanagementnotifiersareexecutedwith/#cd/sys# /sys#cd/sys/power# 可以看到,在/sys下,有一个power,在power下,有六个文件,我们主memechostate中写入数据,手/sys/power#echomem> [1636.437876][lqm]/sys/power#[1636.649681]PM:Syncingfilesystems...done.[1636.650823][lqm]++suspend_prepare[ zinguserspaceprocesses...(elapsed0.01seconds)[1636.671352] zingremaining zabletasks...(elapsed0.01seconds)done.[1636.686910][lqm]++suspend_devices_and_enter,state=3[1636.686956]Suspendingconsole(s)(useno_console_suspendto这里是让系统进入休眠的一个 ,紧接着在 下创建state等文件 init{interror=if=",if,}{#ifdefstaticstructattribute_groupattrgroup=.attrs=.attr= .name=stringify(_name),.mode= = = }#define .attr= .name .mode= = = }char{char*s=#ifdefintfor(i=0;i<PM_SUSPEND_MAX;i++)if(pm_states[i]&&s+=sprintf(s,"%s",}#ifdefs+=sprintf(s,"%s\n",if(s!=/*convertthelastspacetoanewline*(s-1)=return(s-}fors中,再返回。pm_states#ifdefCONFIG_EARLYSUSPEND [PM_SUSPEND_MEM]="mem",这是因为另外两个被valid_state函数过滤掉了。{Allstatesneedlowlevelsupportandneedtobevalidtotheimplementation,novalidcallbackimpliesthatnoneare} suspend_set_ops-Settheglobalsuspendmethod Pointertoops {suspend_ops=ops;}可以看到在suspend_set_ops函数中,通过传入参数赋给了suspend_ops。在 init{printk("S3CPowerManagement,Copyright2004SimtecElectronics\n");return}mach-smdkc110.cs3c_pm_inits3c_pm_opssuspend_ops结构。s3c_pm_ops结构如下: tform_suspend_opss3cpmops= =.prepare= = {returnstate==}staticssize_tstate_store(structkobject*kobj,structkobj_attribute*attr,constchar*buf,size_tn){staticssize_tstate_store(structkobject*kobj,structkobj_attribute*attr,constchar*buf,size_tn){#ifdef#ifdefintlen;interror=-p=memchr(buf,'\n',n);len=p?p-buf:n;/*First,checkifwearerequestedtohibernate*/if(len==4&&!strncmp(buf,"disk",len)){error=goto}#ifdeffor(s=&pm_states[state];state<PM_SUSPEND_MAX;s++,{if(*s&&len==strlen(*s)&&!strncmp(buf,*s,len))}if(state<PM_SUSPEND_MAX&&*s)#ifdefCONFIG_EARLYSUSPENDif(state==PM_SUSPEND_ON||{error=0;}error=returnerror?error:}buf是外部写入数据的,通过memchr函数剥离换行符,然后通过for循环查找匹配的状态,如果传入的参数合法,则进入request_suspend_state函数请求挂起。可以看{intold_sleep;old_sleep=state&SUSPEND_REQUESTED; //state13if(debug_mask&DEBUG_USER_STATE){structtimespects;structrtc_timetm;rtc_time_to_tm(ts.tv_sec,&tm);pr_info("request_suspend_state:%s(%d->%d)at%lld"new_state!=PM_SUSPEND_ON?"sleep":"wakeup",requested_suspend_state,new_state,tm.tm_year+1900,tm.tm_mon+1,tm.tm_mday,tm.tm_hour,tm.tm_min,tm.tm_sec,ts.tv_nsec);}{state|=SUSPEND_REQUESTED;//state=1}{printk("[lqm]late_resume_work...\r\n");//lqmstate&=~SUSPEND_REQUESTED; }= spin_unlock_irqrestore(&state_lock,}=3,那么!old_sleep&&new_state=1&&3=1!=PM_SUSPEND_ON=0,故调用requested_suspend_state3state,具体代码没有发现摸唤醒中断,这时传入的new_state=0,同时state保留上次的工作状态为3,可以看到old_sleep=3&1=1,这时!old_sleep&&new_state=0&&0=0,故第一条if语句条件不成立,old_sleep&&new_state=1&&0=0=PM_SUSPEND_ON,这时触发late_resume_work的工作队staticDECLARE_WORK(late_resume_work,early_suspendlate_resumesuspend_work_queueif(suspend_work_queue==NULL){ret=-goto}{unsignedlongirqflags;intabort=if(stateSUSPEND_REQUESTED)//判断是否为请求挂起的状态state|=SUSPENDED;else//如果不是请求挂起,则直接退出abort=1;{if(debug_mask&DEBUG_SUSPEND)pr_info("early_suspend:abort,state%d\n",state);gotoabort;}//(1)调用 的early_suspend函if(debug_mask&DEBUG_SUSPEND){if(pos->suspend!=NULL)}//(2)early_suspend//(3)#ifdefif(has_audio_wake_lock())if(state==}state是否为请求挂起状态,这时state起状态,则调用list_for_each_entry,调用已的early_suspend函数,各已经注册early_suspend的驱动会依次执行对应的函数,实现驱动外设的挂起。再释放early_suspend锁,同步文件系统,最终释放main_wake_lock锁,进入睡眠模式。voidwake_unlock(structwake_lock{intunsignedlongirqflags;#ifdefCONFIG_WAKELOCK_STATif(debug_mask //删除列表中wake_lock节点longhas_lock={if(debug_mask&DEBUG_EXPIRE)pr_info("wake_unlock:%s,startexpiretimer,""%ld\n",lock->name,has_lock);}{ifif(debug_mask&DEBUG_EXPIRE)pr_info("wake_unlock:%s,stopexpire"执行suspend函数,进入挂起状态}if(lock=={if(debug_mask&DEBUG_SUSPEND)#ifdef}}}staticvoidsuspend(structwork_struct{intintstaticvoidsuspend(structwork_struct{intintif(has_wake_lock(WAKE_LOCK_SUSPEND)){if(debug_mask&DEBUG_SUSPEND)}entry_event_num=//(2)if(debug_mask&DEBUG_SUSPEND)//(3)pm_suspendret=pm_suspend(requested_suspend_state);{structtimespects;structrtc_timetm;rtc_time_to_tm(ts.tv_sec,&tm);pr_info("suspend:exitsuspend,ret=%d"tm.tm

温馨提示

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

评论

0/150

提交评论