uboot命令(1):mmc命令


版權聲明

更新:2017-06-07
博主:LuckyAlan
聯系:liuwenvip163@163.com
聲明:吃水不忘挖井人,轉載請注明出處!

1 文章介紹

今天在進行Android分區修改的時候發現擦除后無法進入kernel,查了一下是因為bootargs_Hi3798MV200-emmc.txt文件中的bootcmd沒有修改。這個參數與內核啟動有關,需要用到mmc命令,因此多mmc相關的命令做一個學習總結。

2 開發平台

軟件平台:Android系統。
硬件平台:hisi3798MV200

3 閱讀須知

4 文章正文

4.1 打印當前mmc設備的信息

命令: mmcinfo 

4.2 對mmc進行讀寫操作

4.2.1 命令說明

讀操作命令:  mmc read <device num> addr blk# cnt [partition]  
寫操作命令:  mmc write <device num> addr blk# cnt [partition]  

參數說明:

  • device num:mmc的設備號,可以通過mmc list查詢
  • addr:內存地址
  • blk# :mmc內的塊號
  • cnt:塊數目

4.2.2 命令舉例

讀操作:  mmc read 0 0x10800000 0x600 0x10  
讀操作說明:從第0個mmc設備塊上1536*512個字節處開始(1536是0x600的十進制),讀取16×512個字節(16是10的10進制)到內存0x10800000 處。以kernel為例,若前面的分區為94M(也就是kernel的分區從94M的地方開始),那么,0x600的地方的值應為:94*2*1024的十六進制0x2F000。

為何這樣計算呢?我們在系統開始的時候可以看到如下打印信息:

在上圖中可以看到,每個塊是512Bytes,因此kernel的啟動地址為94*1024*1024改為94*1024*1024/512=94*2*1024。下面的計算方法相同。

寫操作: mmc write 2 0x90000000 0x600 0x10 
寫操作說明:把內存0x90000000開始,長度為16x512大小的數據,寫入到第2個mmc設備塊偏移位置為0x600處。

5 參考資料

1、《常用u-boot命令詳解(全)
2、《uboot中的mmc命令
3、《mmc的命令里面write的參數是16進制卻不需要寫0x


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM