MINI2440和GQ2440燒錄問題

聲明:以下是自己使用GQ2440和MINI2440的學習過程,僅供參考。
      剛學習嵌入式Linux時候,可能會接觸到很多的知識點,內核,根文件,引導什麼的,對於新手來說是相當的苦惱,而且很多問題其實只是某些配置,安裝環節的失誤導致後續工作根本進行不下去,我一開始使用了國嵌的教程來進行學習的,一開始就因爲各種驅動安裝失敗的問題困擾了很久。
      在解決了些硬件上的問題後,一頭扎進了supervivi,和uboot的世界(實際剛學的時候建議不要去碰太多這些東西,真的頭痛,其實就是類似與windows中開啓的BIOS差不多的,友情說明下國嵌裏自帶的supervivi是不能用的。),很多的教程都是介紹JTAG進行BIOS的燒錄,但是一般大部分人都是使用“正版”J-Link來進行燒寫的,MINI2440的用戶手冊沒有介紹,建議可以看下國嵌的BIOS燒入。好不容易把supervivi 燒進了Nor-flash裏。但是在燒入內核的階段就一直失敗了。檢查了很久也沒找到問題,浪費了很多時間。後面就換了MINI2440來使用,因爲MINI2440已經燒入了好了bootloader和OS,因此其實是可以直接做一個體驗再去了解其他的,但是我也不知道我做了什麼操作,導致了後面的NOR-FLASH和NAND-FLASH切換沒有任何的作用,直接啓動啓動(求教),以至於SD卡燒入不能實現,我猜想應該是和引導有關把,於是我嘗試燒入一下bootloader到Nor-flash裏,但是發現J-LINK都連不上,因爲之前的GQ我是可以正常燒入bootloader的,於是我又還回來了,這次燒入的是MINI2440裏提供的supervivi,支持SD卡的快速燒入系統,只能說黃天不負有心人,終於燒入系統成功了,可以進行下一步的學習了。下圖是串口打印的信息,之後切換到NAND-FLASH就可以啓動系統了。
       
SD卡燒入成功之後的界面

 典型嵌入式linux系統啓動過程
1.典型嵌入式系統的部署:uboot程序部署在Flash(能作爲啓動設備的>Flash)上、OS部署在FLash(嵌入式系統中用Flash代替了硬盤)上、
內存在掉電時無作用,CPU在掉電時不工作。
2.啓動過程:嵌入式系統上電後先執行uboot、然後uboot負責初始化>DDR,初始化Flash,然後將OS從Flash中讀取到DDR中,然後啓動OS
(OS啓動後uboot就無用了)

norflash:非易失閃存,是一種外部存儲介質,芯片內執行(XIP,eXecute In Place),這樣應用程序可以直接在flash閃存內運行,不必再把代碼讀到系統RAM中,由於它有地址總線,cpu可以直接從norflash中取指,直接從FLASH中運行程序,但是工藝複雜,價格比較貴,容量較小(1~4M),NOR的傳輸效率很高
nandflash:它也是非易失閃存(掉電不丟失)的一種,但是它雖然有數據總線,但是沒有地址總線,所以cpu不能直接從nandflash中取指運行,由於它價格便宜,所以常常用來存儲大量數據,和我們常說的似。

嵌入式Linux一般開發流程
1.建立開發環境
2.配置開發主機
3.建立引導裝載程序BOOTLOADER
4.下載別人已經移植好的linux操作系統
5.建立根文件系統
6.建立應用程序的FLASH磁盤分區
7.應用開發

一般是開發過程中是先把uboot載到nor中,然後通過nor中的uboot再把uboot跟linux 內核,根文件系統下到nandflash,它的最終位置應該是在nandflash。。。至於nor跟nand有什麼區別,nor裏面的代碼可以直接運行,不需要加載到RAM(內存),而nandflash裏面的代碼需要加載到RAM才能運行,nor的速度沒有ram快,所以一般最終版本的代碼應該下載到nand,系統啓動的時候會自動拷貝nand裏面的前面4k代碼到ram中,你這4k的代碼必須完成硬件初始化並且把其餘的代碼全部拷貝到ram中。

參考:
https://zhidao.baidu.com/question/539358089.html
http://www.cnblogs.com/aaronLinux/p/5540606.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章