SD卡 iNand操作指令movi

2021-08-29 01:48:50 字數 1805 閱讀 7243

1、sd卡/inand操作指令movi

(1)開發板如果用sd卡/emmc/inand等作為flash,則在uboot中操作flash的指令為movi(或mmc)

(2)movi的指令都是movi read和movi write一組的,movi read用來讀取inand到ddr上,movi write用來將ddr的內容寫入inand中。

(3)movi read 這個命令使用了一種通用型的描述方法來描述:大括號中的豎線表示多選一。中括號表示可選引數。

(4)指令有很多用法,譬如 movi read u-boot 0x30000000,意思就是把inand中u-boot分割槽讀出到ddr的0x30000000起始的位置處。(uboot**中將inand分成很多分割槽,每個分割槽有位址範圍和分割槽名,uboot程式操作中可以直接位址來操作inand分割槽,也可以使用分割槽名來操作分割槽。);注意這裡的0x30000000也可以直接寫作30000000,意思是一樣子的(uboot的命令列中所有的數字都被預設當成16進製制處理,不管你加不加0x都一樣)。

2、nandflash操作指令nand

(1)理解方法和操作方法完全類似於movi指令

3、記憶體操作指令:mm、mw、md

(1)ddr中是沒有分割槽的(只聽說過對硬碟、flash進行分割槽,沒有聽說過對記憶體進行分割槽······),但是記憶體使用時要注意,千萬不能越界踩到別人。因為uboot是乙個裸機程式,不像作業系統會由系統整體管理所以記憶體,系統負責分配和管理,系統會保證記憶體不會隨便越界。然後裸機程式中uboot並不管理所以記憶體,記憶體是散的隨便用的,如果是程式設計師(使用uboot的人)自己不注意就可能出現自己的資料給覆蓋了。(所以你思考我們為什麼把uboot放在0x23e00000位址處)

(2)md就是memory display,用來顯示記憶體中的內容。

(3)mw就是memory write,將內容寫到記憶體中

(4)mm就是memory modify,修改記憶體中的某一塊,說白了還是寫記憶體(如果需要批量的逐個單位的修改記憶體,用mm最合適)

4、環境變數如何參與程式執行

(1)環境變數有2份,乙份在flash中,另乙份在ddr中。uboot開機時一次性從flash中讀取全部環境變數到ddr中作為環境變數的初始值,然後使用過程中都是用ddr中的環境變數重新寫入flash中更新flash中的環境變數。下次開機時又會從flash中再讀一次。

(2)環境變數在uboot中是用字串表示的,也就是說uboot是按照字元匹配的方式來區分各個環境變數的。因此用的時候一定要注意不能寫錯字。

5、網路設定:ipaddr servserverip

(3)gatewayip是開發板的本地閘道器位址

(4)netmask是子網掩碼

(5)ethaddr是開發板的本地網絡卡的mac位址。

6、自動執行命令設定:bootcmd

(1)uboot啟動時實際就是在內部執行了bootcmd這個環境變數的值所對應的命令集。

(2)bootcmd=movi read kernel 3000800;bootm 30008000意思是:將inand的kernel分割槽讀取到ddr記憶體的0x30008000位址處,然後使用bootm啟動命令從記憶體0x30008000處去啟動核心。

(3)在uboot中是沒有作業系統的,因此我們對flash(相當於硬碟)的管理必須事先使用分割槽界定(實際上在uboot中和kernel中都有個分割槽表,分割槽表就是我們在做系統移植時對flash的整體分配方法)。有了這個界定後,我們在部署系統時按照分割槽界定方法來部署,uboot和kernel的軟體中也是按照這個分割槽界定來工作,就不會錯。

(4)分割槽方法不是一定的,不是固定的,是可以變動的。但是在乙個移植中必須事先設計好定死,一般在設計系統移植時就會定好,定的標準:

SD卡,檔案操作,記錄日誌

sd卡是否存在 private boolean checksdcardstatus else return sdcardstatus sd卡上是否有apk檔案 private boolean checkfileexist string ifilepath return fileexist 刪除檔案 ...

備份sd卡上的作業系統

我們的嵌入式開發板上的ubuntu作業系統存在於一張sdcard上。怎麼備份這個系統到另外一張sdcard上呢?簡單地拷貝似乎行不通,無法啟動。我使用linux dd命令圓滿完成備份任務,經過驗證,系統能夠啟動,執行正常。步驟如下 準備兩張sd卡,源卡和目標卡。目標卡的容量必須大於等於源卡。dd命令...

備份sd卡上的作業系統

我們的嵌入式開發板上的ubuntu作業系統存在於一張sdcard上。怎麼備份這個系統到另外一張sdcard上呢?簡單地拷貝似乎行不通,無法啟動。我使用linux dd命令圓滿完成備份任務,經過驗證,系統能夠啟動,執行正常。步驟如下 準備兩張sd卡,源卡和目標卡。目標卡的容量必須大於等於源卡。dd命令...