天天看點

kernel和rootfs燒錄與啟動系統

環境部署:在uboot中的serverip要設定為電腦tftp伺服器ip;

設定:

set serverip 192.168.1.20

sa

1.1、燒錄kernel

(1)SDRAM位址範圍:80000000-83FFFFFF

(2)tftp得能通能下載下傳,才能燒錄。ip設定是:本地192.168.1.10,serverp是141

1.14.3、uboot的各環境變量介紹和設定

(1)網絡位址:ipaddr 192.168.1.10, serverip 192.168.1.141

(2)bootcmd:

(3)bootargs:

附:燒錄指令

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

注:

mw.b — 解釋memory write;

.b — 代表以位元組為機關;

0x82000000 — sdram中起始位址;

ff — 先把sdram這段清成ff;

0x100000 — 長度為1M;

tftp 0x82000000 u-boot-hi3518ev200.bin — 代表在伺服器server下下載下傳.bin檔案到sdram中

sf probe 0 — 選擇spi0作為下載下傳方式;這裡代表為以spi方式下載下傳,因為使用的是spi flash。為了區分有多個spi 。

sf erase 0x0 0x100000 — 擦出的一個spi flash的起始位址以及長度;

sf write 0x82000000 0x0 0x100000 — 将程式從sdram中寫到spi flash中,由sdram中起始位址0x82000000的資料,寫到spi flash從位址0x0,長度為1M;

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

這裡的kernel和rootfs的解釋和uboot下載下傳說明大緻相同的;

2.1 正确的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)

sa

注:

set bootcmd 中為什麼有單引号‘’,因為其中有好幾條指令。

sf probe 0 — 選中spi flash;

sf read 0x82000000 0x100000 0x300000 — 從flash的起始位址0x100000讀取資料到sdram的起始位址0x82000000中,長度是0x300000。

bootm 0x82000000 — 然後bootm直接去啟動就可以了,這時候啟動的就是我們的核心鏡像;

set bootargs 解釋

mem=32M — 代表我們的記憶體大小;

console=ttyAMA0 — 代表我們的控制台是ttyAMA0(指使用序列槽幾);

115200 — 波特率為115200;

root=/dev/mtdblock2 — 跟檔案系統在我們的第2個分區(分區從0開始算起),第0個分區是uboot,第1個分區是kernel,第2個分區為檔案系統;

rootfstype=jffs2 — 檔案系統的類型為jffs2;

mtdparts=hi_sfc:1024K(boot),3072K(kernel),12288K(rootfs) — 代表了3個分區表,括号内代表分區名稱。

特别注意:這裡的mem=32M,有一個隐晦的表示,這裡的Linux核心使用的記憶體大小設為32M,海思的mpp設定的記憶體大小是32M. 這個記憶體總大小是64M.

bootcmd和bootargs可以複制同時設定的。

3.1 mpp的部署

這裡是要做兩件事:

第一 是把ko檔案部署到闆子上

第二是把lib檔案放到/usr/lib

第三是vi /etc/profile

寫入:

cd /ko

./load3518e -i -sensor ar0130 -osmem 32 -total 64

第四是 設定網卡 同樣是在 vi /etc/profile

ifconfig lo 127.0.0.1

ifconfig eth0 192.168.1.10

然後就可以測試應用程式了。