4412开发板学习之入门体验:前言及编译烧写安卓4.0.3

前言

    在赶开学的时候买了迅为家的iTop4412开发板,4412是三星的SOC,2012年的产品,曾用在自家旗舰机S3上,魅族等品牌也推出过搭载该SOC的机型,可以说是经历了重重考验,六七年来也有许多的厂商开发了开发板及学习板,资料丰富,同时四核A9,1.4GHZ的主频,可以说是32位ARM的巅峰之作了,再往后的就是64位的ARM芯片了,同时支持双通道DDR3内存、支持电源管理、Mali400的GPU,可以说是很香了,而前好几代的2440上市都十几年了,技术落后太多,所以我在2440和4412之间选择了4412。更加优秀的是4412不仅可以跑linux、跑Qt还能跑Android、跑Ubuntu,体验感十足。

    自己这个学期还是比较忙碌的,有很多的事情、很多的比赛,但是自己的事情还是不能落下的,现在学习的可能就是以后找工作的东西了,今年互联网寒冬似乎一下就到来了,实验室的学长们找工作都感觉到了吃力,所以说要更加努力,学得更多更好才有可能在“寒冬”找到一个好的工作。

    讯为给出的学习规划如下:

    1、理解Uboot、kernel、文件系统那几个概念

    2、学会烧写系统

    3、学会编译系统,把那几个文件生成出来

    4、学习Linux应用程序的编写和调试

    5、学习简单的字符类驱动的编写和调试

    6、开始读源码,更加深入的理解

    在寒假已经大致的把这些都玩了玩,尤其是搭建环境、编译源码、系统移植还有Linux系统编程,当然,寒假的学习只能说是摸到了皮毛,前五项的进一步学习就可能会花费一年的时间,第六项更是三年五年十年甚至是终身的学习过程,加油吧!古之立大事者,不惟有超世之才亦必有坚忍不拔之志。

编译烧写安卓4.0.3

    在入门教程中首先尝试了安卓的编译和烧写,当然,这其中的很多步骤都被讯为给简化了,这样其实是有助于我们的入门的,嵌入式学习是一个悖论,一开始需要搭建环境,配置各种变量,但是这些操作往往还要求你对系统有更深入的认识,所有说一开始我们可以先使用别人搭建好的,先暂时跳过这个,通过以后的学习会慢慢了解熟悉这个过程。

首先需要安装安卓ADB驱动

    直接安装,重启后连接安卓设备可以看到

  4412开发板学习之入门体验:前言及编译烧写安卓4.0.3

fastboot烧写Android

    注意一个系统启动需要的三个部分就是:u-boot、kernel、文件系统

    这里需要四个文件:u-boot-iTop-4412.bin(Uboot)、zImage(kernel)、ramdisk-uboot.img(ramdisk)、system.img(文件系统)

    拷贝准备的四个镜像到platform-tools(烧写工具)文件夹下,如图

    4412开发板学习之入门体验:前言及编译烧写安卓4.0.3

    进入Uboot模式(在Uboot引导内核倒计时结束前按下回车)

    分区命令

      fdisk -c 0

    格式化命令

        fatformat mmc 0:1

        ext3format mmc 0:2

        ext3format mmc 0:3

       ext3format mmc 0:4

    连接命令

       fastboot

    然后打开platform-tools文件夹中的cmd.exe开始进行烧写

    烧写uboot(不建议烧写,已经存在了)

        fastboot.exe flash bootloader u-boot-iTop-4412.bin

    烧写kernel

        fastboot.exe flash kernel zImage

    烧写ramdisk

        fastboot.exe flash ramdisk ramdisk-uboot.img

    烧写文件系统

        fastboot.exe flash system system.img

    等待全部烧写完成重启开发板

        fastboot reboot

    到这里就烧写完成了,启动后会进入安卓系统,连上LCD的话也会有图像显示

编译

    编译分为三个部分:uboot、kernel、Android文件系统

    几个要点

        编译器,库文件

        环境变量

        相关的小工具

    编译Android4.0.3对应的uboot

        源码

           资料有提供

        编译器

           修改bash的环境变量

           4412开发板学习之入门体验:前言及编译烧写安卓4.0.3

           更新 source.bashrc

        编译脚本和参数

           sudo ./build_uboot.sh SCP_1GDDR

        完成后生成了一个bin文件

           4412开发板学习之入门体验:前言及编译烧写安卓4.0.3

    编译Android4.0.3对应的Kernel

        不同的配置文件

            4412开发板学习之入门体验:前言及编译烧写安卓4.0.3

            4412开发板学习之入门体验:前言及编译烧写安卓4.0.3

             将配置文件覆盖.config:cp config_for_android_scp_elite .config

             开始编译:make -j4 zImage

             编译模块支持wifi:make modules

    编译Android4.0.3的文件系统

        将源码拷贝过去解压

        运行build_android.sh

        第一次编译耗费的时间较长

        输出了 system.img  ramdisk-uboot.img

        4412开发板学习之入门体验:前言及编译烧写安卓4.0.3

    到这里四个文件就生成完毕了,按照上面烧写的步骤烧写即可