最近在海思3518e平臺下燒寫內核和文件系統,因爲項目須要,須要運行海思SDK中的測試軟件HiIspTool,不能使用精簡後的文件系統,須要刷一個比較大的文件系統,但在此過程當中因爲各類緣由,弄壞了一個板子,燒壞了一個uboot,因爲要卸下SPI NOR FLASH,從新燒寫實在太過麻煩,放棄了該板子。在此過程當中走了些彎路,在此記錄下主要過程和注意事項,但願可以提醒本身和剛如何這方面的新手,共勉!網絡
1.板子上電時按住ctrl+c進入uboot模式ide
2.設置UBOOT模式的板子的IP和PC服務端的IP,使用Tftpd進行內核和文件系統的下載,比較快,若是使用串口下載的話,須要使用超級終端軟件,很是慢。測試
setenv ipaddr 192.168.1.106 設置本板子的IPspa
setenv serverip 192.168.1.100 你的宿主機的IP,即開Tftpd的ipserver
設置後ping下確保網絡通着。ip
三、內核燒寫內存
mw.b 82000000 ff 140000; 在內存0x82000000後填充140000個11111111cmd
tftp 0x82000000 uImage_hi3518e_mini; 下載內核文件it
sf probe 0; 選在當前Flashconsole
sf erase 40000 140000; 擦除將要寫入內核的1.4M空間
sf write 82000000 40000 140000; 將剛下載的內核寫入到40000內存開始處,大小爲1.4M,最後一個參數爲偏移地址
我使用的內核大小爲1.2M,給其分配了1.4M的空間,注意內核的大小不能大於給內核分配的空間大小,以上幾條命令能夠連在一塊兒進行操做,中間以;分隔便可,這樣效率比較高
四、文件系統燒寫
mw.b 82000000 ff 620000;
tftp 0x82000000 rootfs_64k_mpp.jffs2;;
sf probe 0;
sf erase 180000 620000;
sf write 82000000 180000 620000;
給文件系統分配了6.2M的空間,在此沒有分配其餘的用戶等等分區。
五、設置啓動參數
setenv bootargs 'mem=28M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:256K(boot),1280K(kernel),6144K(rootfs)';
最重要的是mtdparts參數的設置,本人使用的內核支持mtd驅動,即內核經過mtdparts參數能夠找到文件系統並建立MTD分區,在此boot、kernel、rootfs的大小必須是spi Block大小的整倍數,如本人使用的Block大小爲64KB,另外還有128KB,256KB兩種,注意三快分區的大小之和不要超過整個Flash的大小。
setenv bootcmd 'sf probe 0;sf read 0x82000000 0x40000 0x140000;bootm 0x82000000';
bootcmd在啓動時執行的命令,0x40000 0x140000表明從0x40000開始處讀取內核,大小爲140000。
另:提供本人這次燒錄的3518e內核和文件系統的下載
內核:
文件系統:
請進入個人資料 進行下載