hitool java_第三章:使用HiTool下载程序
一、編譯好SDK以后,在osdrv/pub/image_uclibc生成咱們須要的鏡像,能夠看一下文件大小
接下來咱們須要用到uboot、kernel、rootfs,其中rootfs是rootfs_hi3518ev200_64k.jffs2
二、燒錄原理
開發板中用的是spiflash,有16M的大小。經過主芯片提供的isp下載的機制來下載。經過串口發送數據給主芯片(hi3518e),主芯片接收完數據后暫存到內存中去,以后經過spi接口將數據寫入flash中。
這種方式不要求flash中有任何工具,因此很方便。
isp代碼固化在了在了芯片的irom中。
一啟動會默認的先從uart中接收數據(第一啟動順序),若是燒錄工具和芯片通訊的上,就會觸發isp下載。若是沒有就會進行第二順序啟動,即從flash中load代碼,里面的細節就先不了解了。
三、燒錄工具HI_Tool
這個工具是基于java開發的,因此要先安裝jre-6u45-windows-i586,安裝完后,
啟動Hi3518E V200R001C01SPC030\01.software\pc\Hi_TOOl目錄中的HiTool.exe
點擊hitool平臺中的hiburn,進入到工具界面。
以后能夠看到如下界面,hitool支持串口和網路下載,這里咱們僅使用串口進行下載,網路這塊,之后有機會在試試看吧。
首先一開始要給開發板接上串口和電源,而后再打開這個hitool工具。
一、若是一開始看不到串口的話,點擊刷新,就會出現串口號。
二、傳輸方式選擇串口。
三、選擇要下載的文件,只能是咱們事先編譯好的uboot。
四、器件是spi
五、開始地址和長度這個根據咱們本身設置的大小來設便可,但不能小于燒錄文件的大小。
最后點擊燒錄就能夠開始燒錄了。若是仍是提醒串口啥的,那就先關閉這個工具,在開發板不斷電的狀況下,再從第一步開始作起。
開始燒錄的時候,會出現如下窗口,可是進度條不會動的,這時候就要將開發板斷電再上電,就能夠正常下載了,這個下載方式和51單片機如出一轍。下載完成會有提示。
四、這里只能下載咱們編譯好的uboot,不然下載一半會出現串口錯誤。主要緣由是由于hitool的下載機制
、它先將咱們要下載的東西存放在內部內存中(0x81000000)而后使用uboot的flash命令去燒寫。
以咱們如今燒錄的uboot來講
一、Send command: getinfo version
二、Send command: getinfo bootmode
三、Send command: getinfo spi
四、Send command: sf probe 0
五、Send command: sf erase 0x0 0x100000
六、Send command: sf write 0x81000000 0x0 0x50000
七、Send command: reset
五、由于嵌入式系統為了簡化,沒有使用分區表來自動管理flash,因此都是事先定死的。因此在部署一個嵌入式系統前都要人為的定下一個分區
分區名 分區大小 起始地址 截至地址
bootloader: 1M 0x00000000 0x00100000
kernel: 3M 0x00100000 0x00400000
rootfs: 12M 0x00400000 0x01000000
六、接下來的kernel和rootfs則須要用tftp的下載方式下載到內存中去,而后再用uboot中的命令來下載到flash中。
七、tftp更新并從新燒寫uboot的命令序列:
mw.b 0x82000000 ff 0x100000
tftp 0x82000000 u-boot-hi3518ev200.bin
sf probe 0
sf erase 0x0 0x100000
sf write 0x82000000 0x0 0x100000
--------------------------------------------------
tftp更新并從新燒寫kernel的命令序列:
mw.b 0x82000000 ff 0x300000
tftp 0x82000000 uImage_hi3518ev200
sf probe 0
sf erase 0x100000 0x300000
sf write 0x82000000 0x100000 0x300000
---------------------------------------------------
tftp更新并從新燒寫rootfs的命令序列:
mw.b 0x82000000 ff 0xc00000
tftp 0x82000000 rootfs_hi3518ev200_64k.jffs2
sf probe 0
sf erase 0x400000 0xc00000
sf write 0x82000000 0x400000 0xc00000
八、正確的bootcmd和bootargs對應的設置命令:
set bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x300000;bootm 0x82000000'
set bootargs mem=32M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1024K(boot),3072K(kernel),12288K(rootfs)
其中mtdparts是告訴內核未來咱們的flash各分區大小是和名字是啥。
到內核后會打印出咱們設置是分區名稱和范圍
總結
以上是生活随笔為你收集整理的hitool java_第三章:使用HiTool下载程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: url中#号的作用
- 下一篇: hadoop等的下载地址