arm下如何烧写指定分区大小的内核和文件系统
? ? 最近在海思3518e平臺下燒寫內(nèi)核和文件系統(tǒng),由于項目需要,需要運行海思SDK中的測試軟件HiIspTool,不能使用精簡后的文件系統(tǒng),需要刷一個比較大的文件系統(tǒng),但在此過程中由于各種原因,弄壞了一個板子,燒壞了一個uboot,由于要卸下SPI NOR FLASH,重新燒寫實在太過麻煩,放棄了該板子。在此過程中走了些彎路,在此記錄下主要過程和注意事項,希望能夠提醒自己和剛?cè)绾芜@方面的新手,共勉!
? ??
? ? 1.板子上電時按住ctrl+c進入uboot模式
? ??2.設置UBOOT模式的板子的IP和PC服務端的IP,使用Tftpd進行內(nèi)核和文件系統(tǒng)的下載,比較快,如果使用串口下載的話,需要使用超級終端軟件,非常慢。
? ? setenv ipaddr ? ?192.168.1.106 ?設置本板子的IP
? ? setenv serverip ?192.168.1.100 ?你的宿主機的IP,即開Tftpd的ip
? ? 設置后ping下確保網(wǎng)絡通著。
??
? ? 3、內(nèi)核燒寫
???????mw.b 82000000 ff 140000; 在內(nèi)存0x82000000后填充140000個11111111
???????tftp 0x82000000 ?uImage_hi3518e_mini; 下載內(nèi)核文件
???????sf probe 0;????選在當前Flash
? ? ? ?sf erase ?40000 ?140000; ?擦除將要寫入內(nèi)核的1.4M空間
???????sf write 82000000 40000 140000; ?將剛下載的內(nèi)核寫入到40000內(nèi)存開始處,大小為1.4M,最后一個參數(shù)為偏移地址 ? ? ??
? ? ? ?我使用的內(nèi)核大小為1.2M,給其分配了1.4M的空間,注意內(nèi)核的大小不能大于給內(nèi)核分配的空間大小,以上幾條命令可以連在一起進行操作,中間以;分隔即可,這樣效率比較高
????4、文件系統(tǒng)燒寫
????mw.b 82000000 ff 620000;
? ? tftp 0x82000000 ?rootfs_64k_mpp.jffs2;;
????sf probe 0;
????sf erase ?180000 ?620000;
????sf write 82000000 180000 620000;
????給文件系統(tǒng)分配了6.2M的空間,在此沒有分配其他的用戶等等分區(qū)。
????5、設置啟動參數(shù)
????setenv bootargs 'mem=28M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 ????mtdparts=hi_sfc:256K(boot),1280K(kernel),6144K(rootfs)';
? ? 最重要的是mtdparts參數(shù)的設置,本人使用的內(nèi)核支持mtd驅(qū)動,即內(nèi)核通過mtdparts參數(shù)可以找到文件系統(tǒng)并創(chuàng)建MTD分區(qū),在此boot、kernel、rootfs的大小必須是spi Block大小的整倍數(shù),如本人使用的Block大小為64KB,另外還有128KB,256KB兩種,注意三快分區(qū)的大小之和不要超過整個Flash的大小。
????setenv bootcmd 'sf probe 0;sf read 0x82000000 0x40000 0x140000;bootm 0x82000000';
? ? bootcmd在啟動時執(zhí)行的命令,0x40000 0x140000代表從0x40000開始處讀取內(nèi)核,大小為140000。
??
? ? 另:提供本人此次燒錄的3518e內(nèi)核和文件系統(tǒng)的下載
? ? 內(nèi)核:
? ? 文件系統(tǒng):
? ? 請進入我的資料 進行下載
? ??
轉(zhuǎn)載于:https://blog.51cto.com/cto521/1584602
總結(jié)
以上是生活随笔為你收集整理的arm下如何烧写指定分区大小的内核和文件系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2014.11 总结
- 下一篇: ubuntu 系统相关有用的配置