码迷,mamicode.com
首页 > 移动开发 > 详细

友善之臂tiny4412-1306开发板安卓系统烧写

时间:2016-07-25 00:21:58      阅读:1006      评论:0      收藏:0      [点我收藏+]

标签:

折腾了很久,终于烧写成功。不废话,咱们说说流程吧。

首先,我们需要有一个基于tiny4412的kernel,从友善之臂官网获取。

然后解压:

1、tar -xvf  linux-3.5 ....

然后cp  tiny4412-android_deconfig  .config

接下来make zImage 在 arch/arm/boot/生成对应的zImage ,这个也就是我们的kernrl。

当然在此之前,我们需要安装交叉编译工具arm-linux-gcc。没有的话就装上这个环境,arm-linux-gcc-4.5.1-v6-vfp-20120301(过程略)


2、下来安卓文件系统

从友善之臂官网下载对应的安卓文件系统,我下的是安卓5.0:android-5.0.2-fs-20150325.tar.gz

同样的用tar 命令解压。

1、到安卓主工程目录下,如图:

技术分享
技术分享

2、然后在命令行下输入. setenv后会出现:

技术分享

生成相应的环境配置脚本

3、接下来lunch full_tiny4412-eng:

获取版本信息以及相应的安卓工作和命令等等。。。

技术分享

4、接下来就是直接在工程下敲make -j4 

系统就会开始编译啦,漫长的等待............(如果你电脑好的话,4核也需要编译5-6个小时的时间)

5、编译成功后./gen-img.sh执行这个脚本会生成安卓的img,如果执行出错的话就去安装uboot的mkimage工具。

具体如下,到官网去下载uboot_tiny4412-20130729.tgz

然后以下步骤:

tar xzf uboot_tiny4412-20130729.tgz
cd uboot_tiny4412/
make tiny4412_config
make
sudo cp tools/mkimage /usr/bin/

6、生成的img有

ramdisk-u.img 、 system.img 、 userdata-4g 、 还有其它,我们主要需要前面这三个加上上面的zImage就可以了,

还有我们还需要Superboot4412、FriendlyARM.ini这两个文件,最前面那个是bootloader,后面那个是下载的配置脚本。

准备完成后,接下来:(以下是copy网友的,有侵权请联系我注明,谢谢。)

、使用SD-Flasher工具烧写Superboot到SD卡

本步骤将执行以下操作:

SD-Flasher.exe会对SD卡进行分区,第一个分区为130M用于存放Superboot4412,剩下的空间格式化为FRIENDLYARM分区,用于存放系统文件images。有些小于256M的SD卡是无法使用的,我们推荐使用至少4G的SD卡。

以下是详细步骤,基于Windows7环境:

Step1:打开光盘tools目录,解压SD-Flasher-1327.7z得到SD-Flasher.exe烧写软件,启动它,请注意,你需要通过管理员身份来打开该软件才行,如图

技术分享

启动SD-Flasher.exe软件时,会弹出“Select your Machine...”对话框,请在其中选择“Mini4412/Tiny4412”项:

技术分享

点Next后将弹出SD-Flasher主界面,点击一下Scan,将列出你的SD卡,选中它,然后点“ReLayout”对SD卡进行分割,注意,本操作会将SD卡内的数据清空然后重新分区。

技术分享

分割完成后,再点一下“Scan”,你会看到Available已变为可用状态,表示已分割完成:

技术分享

Step2:点按钮找到所要烧写的Superboot4412.bin(默认位于光盘images/目录下,如光盘目录已移动过,注意不要放在中文目录下),如图:

技术分享

Step3:点“Fuse”,Superboot4412.bin就会被安全地烧写到SD卡的无格式区中了,以后你再使用SD-Flasher制作SD卡时,无需再执行ReLayout操作,FAT32分区中的数据会得以保留。

技术分享

Bootloader被写入SD卡后是无法看到的,该如何检测呢?

方法是把SD卡插到已连接串口的开发板上,并把开发板上S2开关设置为“SDBOOT”模式,开机后,串口上有信息输出,例如:

技术分享

表示Bootloader已被写入SD卡,如果串口没有输出,说明没有烧写成功。

以下几种原因均有可能导致不行,并有解决方法:

1.使用了笔记本自带的读卡器,建议使用外接的usb读卡器,注意,有的外接usb读卡器也是不行的

2.使用了山寨的SD卡,请使用正品,最好是4G或以上的SDHC

3.使用了microSD+卡套,请使用普通的SD卡,因为卡套的方式非常容易导致接触不良

4.因接触不良导致无法使用SD卡启动的可能性比较大,建议多插拔几次试试,这包括(1)核心板和底板的接触,(2)SD卡座本身的接触

1.2、注意事项

由于用户一般都会使用SD卡来存放一些其它的数据,因此,基于此考虑,SD-Flasher软件在Vista/Winows7中运行时,会把SD卡自动分割为普通的FAT32格式区(自动命名卷标为“FriendlyARM)和无格式区(占130M)两部分,烧写软件将会依据卷标名称作为标志,把bootloader烧写到无格式区,这样就不会破坏普通FAT32格式区中的数据了。

实际上,Vista/Windows7系统本身的安全性很高,普通用户是无法在Vista/Windows7系统上强制烧写SD卡的,因此必须要先分割才能写入。

另外,烧写Superboot4412.bin请务止使用Windows7运行SD-Flasher来操作,如果使用Windows XP,可能会烧写失败导致无法通过SD卡启动。

1.3、复制光盘的images目录到SD卡上

如需要使用SD卡脱机烧写系统功能,则可以将光盘上的images目录整个拷贝到SD卡的根目录下:

技术分享

2、Linux环境下超级终端的配置(以minicom为例介绍)

想要对嵌入式开发板进行开发和操作,都需要进行文件传输或者是控制,这时基本都是需要通过串口线或者是网线进行连接的,在Windows下是使用超级终端通过串口对开发板进行操作的,而在Linux下,最后最常见的串口调试工具就是minicom。minicom的安装过程还是比较简单的,对于操作过程也就是一个熟悉的过程,在其中的操作都是字符界面下的,只要知道熟悉,就能熟练运用了。

2.1、minicom的安装

在终端中输入sudoapt-get install minicom安装。

2.2、minicom的配置

第一次启动前,在终端中输入sudo minicom -s,对minicom进行第一次的配置。在弹出的对话框内,选择Serial port setup一项,

技术分享

然后按下a键,修改为/dev/ttyUSB0,就是选择了UART0,然后按下回车;再按e,修改为115200 8N1,设置传输的比特率等设置,然后按下回车;再按f,把Hardware Flow Control修改为No,然后按下回车。再在刚才的主菜单中选择Save setup as dfl,保存为默认配置,最后选择Exit from minicom,退出配置菜单。

技术分享

或者选择Exit直接进入minicom:

技术分享

3、使用SD卡脱机烧写Linux系统

注:此步骤假设你的SD已经烧写了Superboot4412.bin,并且从光盘中拷贝了相应的烧写文件到SD卡上,拷贝方法是将光盘中整个images目录拷贝到SD卡的根目录下。

3.1、修改烧写配置信息文件

把SD卡插入电脑,双击打开”imagesFriendlyARM.ini”文件,将FriendlyARM.ini的内容修改成如下内容(默认已经如此):

#This linecannot be removed. by FriendlyARM(www.arm9.net)

CheckOneButton=No

Action = Install

OS = Linux

LowFormat = No

VerifyNandWrite= No

LCD-Mode = No

CheckCRC32=No

StatusType =Beeper | LED

###################Linux ####################

Linux-BootLoader= Superboot4412.bin

Linux-Kernel =Linux/zImage

Linux-CommandLine= root=/dev/mmcblk0p1 rootfstype=ext4 console=ttySAC0,115200 init=/linuxrcctp=2

Linux-RamDisk =Linux/ramdisk-u.img

Linux-RootFs-InstallImage= Linux/rootfs_qtopia_qt4.img

注意,使用Tiny4412SDK 1308底板的用户,Android-CommandLine上还要加上uhost0=y,在使用Tiny4412SDK 1306底板的用户则无需指定。

使用电阻屏的用户,需要在Linux-CommandLine上,设置ctp=0及skipcali=n。

底板的版本在这里查看:

技术分享

3.2、检查烧写文件是否齐全

检查SD上至少存在如下文件,如果没有,从光盘中拷贝到SD卡(将光盘的images目录整个目录拷到SD卡的根目录即可):

技术分享

3.3、SD卡脱机烧写

取出SD卡插到开发板的SD插槽上,参照下图把开发板串口线和电源线接好,将S2开关切换至SD卡启动,技术分享

然后上电开机,开始烧写系统时,LCD和串口终端会有进度显示。

烧写系统过程中,开发板“滴”一声,表示开始烧写系统,当发出两声“滴”,此时系统已经烧写完毕。在minicom中可以看到如下log信息,显示OS‘LINUX’ Installed:

技术分享

4、烧写完重启进入系统

系统烧写完成后,参照下图把开发板S2开关设置为“Nand”启动,然后重新开机即可启动新的Linux系统了。

技术分享

此时可以在minicom中看到如下信息,表示系统烧写成功:

技术分享

通过ls命令可以顺利进入系统的文件根目录:

技术分享

接下来就可以进行其他操作了!

还有一种是不需要用SD卡进行下来,直接通过DNW线就可以了,具体的,在FriendlyARM.ini中加一句:

USB-Mode = yes 

表示用USB模式来下来,这样我们就可以直接用MiniTool这个工具来下载我们刚刚的那些.img了,驱动是自动识别的,不需要我们自己去安装,接下来下载的步骤请参考"Tiny4412用户手册",百度一搜就有,照着做就可以成功了。

技术分享

然后就等待你的开发板启动成功,下面这个是我的开发板:

技术分享

技术分享



友善之臂tiny4412-1306开发板安卓系统烧写

标签:

原文地址:http://blog.csdn.net/morixinguan/article/details/52015233

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!