sd_fusing.sh将uboot烧写到SD卡
生活随笔
收集整理的這篇文章主要介紹了
sd_fusing.sh将uboot烧写到SD卡
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
以前只知道使用“./sd_fusing.sh ?/dev/sdb”命令來燒寫uboot.bin到SD卡中,對其中的細節并不了解。
心存忐忑,于是乎花了些功夫,去了解sd_fusing文件夾下的內容。
1、sd_fusing文件夾中有哪些文件?
如下圖:
打開Makefile文件,可知mkbl1、sd_fdisk分別由C110-EVT1-mkbl1.c、 sd_fdisk.c文件編譯得到。
2、sd_fusing.sh腳本的解釋
(1)首先明白,燒錄uboot.bin文件到sd卡,所使用的命令是“./sd_fusing.sh /dev/sdb”
- 由此可知$0=./sd_fusing.sh,$1=/dev/sdb,$#=1(參數的個數)
(2)其次,了解sd_fusing.sh的代碼
- 首先了解下dd命令的用法: ? ? ? ? ? ? ? ? ? ?
- 對sd卡進行分區,執行文件是編譯得到的sd_fdisk。后面將分析sd_fdisk.c這個文件。
? ? ? ? ? ? ? ? ? ? ?
- 然后燒寫BL1和uboot到sd卡對應的位置?
? ? ? ? ? ? ? ? ? ? ? ?
存疑:
1、sd_fdisk.c(編譯得到sd_fdisk)這個文件是如何對sd卡進行分區的?
2、C110-EVT1-mkbl1.c(編譯得到mkbl1)這個文件是如何將uboot的前8k復制到SD-bl1-8k.bin文件的?為什么是8k?8k中完成了什么任務?
- uboot的前8K代碼肯定要完成重定位,因為BL1和BL2運行在不同的鏈接地址(舉例如,BL1鏈接地址為0xd0020010,BL2鏈接地址為0x23e00000)。
- 這里見博文:http://blog.csdn.net/oqqhutu12345678/article/details/69365104中的七2的重定位。
3、如何將BL1、uboot燒寫至sd卡對應的位置?為什么是1和49?
- 使用dd命令進行對塊設備的燒寫。
- BL1必須放在第1個 block開始的區域(三星規定的),而49可以變為其他合適的。
總結
以上是生活随笔為你收集整理的sd_fusing.sh将uboot烧写到SD卡的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【案例分享】信息化建设改变行业运营形态
- 下一篇: c语言读取文件到结构体数组,有关文件读写