1.linux系統啟動方式
bootloader->kernel->system
在嵌入式系統中內存為DRAM,inand flash 都不能直接啟動需要被初始化。其中初始化程序在(bootloader中)。
解決思路是通過內部irom中的bl0代碼引導執行uboot。
啟動uboot可以有多種方式,可以使用內部emmc啟動,sd卡啟動,usb啟動等多種方法。
由於優先級不同,用sd卡啟動時除了必要的硬件配置(撥碼開關等)也必須破壞內部emmc中的uboot才能通過sd卡啟動uboot。
在linux系統下破壞uboot的方法:
破壞iNand中的bootloader以從SD2啟動 linux下:
busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=sync sync
uboot下:
movi write u-boot 0x30000000
制作啟動SD卡有兩種方法
有2種燒寫方法:一種是在windows中用刷卡工具去制作啟動SD卡;
另一種是在linux中用dd命令。
linux系統的DD命令后面統一講。
調試開發板時使用SecureCRT可以有效觀看到系統的linux命令行界面,或者可以進入uboot界面。
2.刷機
2.1(使用fastboot)
插入sd卡啟動的時候,通過SecureCRT可以進入uboot界面。
uboot下可以使用fastboot命令。連接電腦(需要安裝相應驅動)。通過fastboot命令將bootloader,kernel,system可以下載到開發板中。
2.2(使用dnw)
刷機分2步:第一步刷x210_usb.bin,地址是0xd0020010;第二步刷uboot.bin,刷機地址是0x23e00000
3.linux系統下工具使用
由於windows下驅動或者兼容性等問題。部分軟件使用十分麻煩。好在以上所有操作在linux系統下都有相應的工具。
3.1linux系統下的SD的燒寫
連接進linux中,在命令行中:ls /dev/sd*查看,和之前對比,就知道SD卡在linux中的設備編號了,一般是/dev/sdb。
執行 ./nand_fusing.sh /dev/sdb(nand_fusing.sh是寫好的一個腳本本質是通過dd命令)
3.2linux下的fastboot
fastboot在ubuntu下可以通過apt-get獲取到。
使用:在uboot下輸入fastboot連接到電腦上(有時需要執行fdisk -c 0分區)
fastboot常用命令: fastboot devices 命令用來查看當前連接的設備。(我們開發板看到的是:SMDKC110-01) fastboot flash xxx 命令用來燒錄的 fastboot reboot 命令用來重啟系統 fastboot flash bootloader android2.3/uboot.bin 燒uboot fastboot flash kernel android2.3/zImage 燒linux kernel fastboot flash system android2.3/x210.img 燒android rom
3.2linux下的dnw使用(裸機下載或刷機都可以使用)
linux下的dnw命令為一個網上找的開源代碼。
使用格式如下
dnw -a <地址> <目標>
dnw -a 0xd0020010 len.bin