總結一下各大開發板android燒寫方式

來源:互聯網
上載者:User

         現在手頭有幾塊板子,2410、2440都是以前用的,現在主要是用6410,一塊是一個公司的JFJ6410開發板,另外一個是天嵌的6410V1.今天總結一下Mini6410、OK6410、TQ6410以及Real6410這幾個國內買的比較多的開發板燒寫Android的方式。其實主要是燒寫UBI檔案系統的方式。之前做嵌入式用的比較多的檔案系統是cramfs和yaffs2檔案系統。但是隨著Android的流行,燒寫Android系統便多了個更好的選擇,那就是UBI檔案系統,UBI相對於cramfs以及yaffs2在效能上的優勢我不清楚,但是至少UBI的壓縮對我們使用開發板學習是個不錯的特性。燒寫一般都使用U-Boot。

        首先是友善之臂的Mini6410,它提供了兩種Boot,一種是移植的三星提供U-Boot1.1.6,這個版本不支援UBI檔案系統的燒寫,他們自己做了個superboot,支援UBI,但是不開源,沒用過。

        然後就是飛淩的OK6410,他們使用的也是三星提供的U-Boot,不支援UBI。所以想出另外的方式來燒寫。他們的燒寫使用了自己的 SD卡燒寫工具:SD_Writer,首先燒寫了一個mmc.bin和一個zImage-sd的檔案到SD卡中,前者mmc.bin其實就是用於SD卡啟動的,後者zImage-sd是一個核心檔案。我們首先來看看mmc.bin做了哪些事情,從SD卡啟動,進入U-Boot的下載模式,使用printenv列印環境變數,可得:

SMDK6410 # printenv         bootargs=rootdelay=0 console=ttySAC0,115200bootcmd=nand erase;
        fatload mmc 0:1 0x50008000 u-boot.bin;nand write.uboot 0x50008000 0 0x100000;
        fatload mmc 0:1 0x50008000 zImage;nand write.e 0x50008000 0x100000 0x500000;
        movi read kernel 0x50008000;bootm 0x50008000

     從上面得bootcmd可以知道做的事情分四步:

        1、擦除整個NAND Flash;

        2、從SD卡中將u-boot.bin檔案下載到記憶體中,然後燒寫到NAND Flash上;

        3、從SD卡中將zImage下載到記憶體中,然後燒寫到NAND Flash上;

        4、從SD卡讀取核心(不是上一步燒寫的zImage,而是之前使用SD卡燒寫工具燒寫的zImage-sd)到記憶體,然後啟動這個核心。而啟動參數就是上面的bootargs所顯示。

       進入這個核心之後,就會進入下面這個命令列,

       可能有人會覺得之前燒寫了U-Boot和zImage-sd到SD卡上,並沒有燒寫檔案系統,那這個核心怎麼啟動呢?這裡我們看一下命令提示字元前面“initramfs”這幾個字元就明白了。

       所有的2.6版本linux核心都有一個特殊的檔案系統rootfs,是核心啟動的初始始根檔案系統,initramfs的檔案會複製到rootfs。如 果把initramfs比作種子,那麼rootfs就是它生長的土壤。大部分linux系統正常運行後都會安裝另外的檔案系統,然後忽略rootfs。

        這下大家就知道了吧,但是由于飛淩沒提供的源檔案,所以不知道yjsx這個程式具體是啥,只能通過看燒寫的過程知道了,這裡我就不貼了。主要做的工作就是把拷貝到SD卡中的檔案系統燒寫到NAND
Flash上,注意,這裡他們燒寫的是yaffs格式,而不是ubi,我猜想他們僅僅是為了方便使用者使用SD卡燒寫(畢竟友善之臂的燒寫方式確實非常好),而不是使用ubi檔案系統。

        這裡再來說一些Real6410和TQ6410,他們做法類似,Real6410是在NAND分區的時候分了兩個檔案系統區,一個是cramfs,一個是真正用到的檔案系統區。先啟動核心進入cramfs檔案系統,將NAND格式化為UBI格式的,再進行燒寫。同樣,TQ6410也是先掛載NFS檔案系統,將NAND格式化UBI,然後進行燒寫。

        不過貌似TQ6410V2已經支援了UBI燒寫,這個還沒看。

        好了,就這樣吧,簡單記一下,呵呵,不清楚的可以看看幾家公司提供的使用手冊。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.