TI推出的數字多媒體平臺DM系列,集成了ARM與DSP雙核處理器:DSP處理器運行DSP/BIOS操作系統,負責音視頻編解碼算法以及其他圖形處理算法;ARM處理器運行MontaVista
Linux操作系統,負責設備初始化、用戶圖形界面管理。ARM處理器端的MontaVista
Linux 加載啟動,需要有Bootloader完成內核由Flash空間加載到DDR空間并啟動Linux系統。Bootloader就是在OS內核運行之前運行的一段程序,通過這段引導程序,初始化硬件設備、建立內存空間映射圖,使系統的軟硬件環境處于一個合適的狀態,為OS內核的啟動做好準備。目前TI的 DM6446平臺采用U-Boot作為Bootloader引導程序。
一、U-Boot簡介
U-Boot,全稱Universal Boot Loader,是遵循GPL(General Public
License) 條款的開放源碼項目。U-Boot不僅僅支持嵌入式Linux系統的引導,還支持 NetBSD,VxWorks,QNX,RTEMS,artos,LynxOS嵌入式操作系統。U-Boot支持 PowerPC,MIPS,X86,ARM,NIOS,XScale等諸多常用系統的處理器。U-Boot項目的開發目標,即是支持盡可能多的嵌入式處理器和嵌入式操作系統。
U-Boot的特點:
> 開放源碼;
> 支持多種嵌入式操作系統內核,如:式LinuxNetBSD,VxWorks,QNX,RTEMS,artos,LynxOS;
> 支持多個處理器系列,如PowerPC,MIPS,X86,ARM,NIOS,XScale;
> 較高的可靠性和穩定性;
> 高度靈活的功能設置,適合U-Boot調試、操作系統不同引導要求等;
> 豐富的設備驅動源碼,如串口、以太網、SDRAM、FLASH、EEPROM、RTC、鍵盤等;
> 較為豐富的開發調試文檔與強大的網絡技術支持。
二、U-Boot目錄結構
> board: 目標板相關文件,主要包含SDRAM,FLASH驅動;
> common:獨立于處理器體系結構的通用代碼,如內存大小探測與故障檢測;
> cpu:
> 與處理器相關的文件。如mpc8xx子目錄下含串口、網口、LCD驅動及中斷初始化等文件;
> driver: 通用設備驅動,如CFI FLASH 驅動(目前對INTEL FLASH支持較好);
> doc:U-Boot的說明文檔;
> examples:U-Boot下運行的實例程序,如hello_world.c,timer.c;
> include:
> U-Boot頭文件,configs子目錄下與目標板相關的配置頭文件是移植過程中經常要修改的文件;
> lib_xxx:
> 處理器體系相關的文件,如lib_ppc,lib_arm目錄分別包含與PowerPC,ARM體系結構相關的文件;
> net: 網絡功能相關的文件目錄,如bootp,nfs,tftp;
> post: 上電自檢文件目錄,尚待進一步完善;
> rtc: RTC驅動程序;
> tools: 用于創建U-Boot S-RECORD和BIN鏡像文件的工具;
U-Boot目前已經支持TI的DM6446平臺,在board/davinci目錄下為devem目標板相關文件,其中包含了網絡、flash等的驅動程序。
Davinci U-Boot系列之二:U-Boot在SEED-DVS6446平臺上的應用
SEED-DVS6446平臺采用U-Boot-1.2.0版本,針對NAND
Flash、Net、DDR驅動修改,并提供更多的U-Boot命令支持。下面以SEED-DVS6446平臺為例,說明U-Boot在該平臺上的常用配置使用。
一、U-Boot啟動
1.軟件配置
打開串口超級終端(PC超級終端、Hyperterminal、Teraterm),配置相關參數如下:
> 波特率:115200
> 數據位:8
> 奇偶較驗:None
> 停止位:1
> 數據流控制:None
2.硬件配置
> DB9串口線一端連接DAVINCI平臺串口,另一端連接PC機串口;
> DAVINCI平臺的視頻采集口連接攝像頭或者DVD作為視頻輸入;
> DAVINCI平臺的視頻輸出口連接顯示設備;
> DAVINCI平臺的網絡接口通過網線連接至路由器等網絡接口,或者通過直通線與
PC機網口連接;
> DAVINCI平臺采用5V-5A電源供電,啟動系統。
此時可以在串口超級終端看到DVS6446平臺的一些相關信息,比如ARM,DDR時鐘頻率,U-Boot版本等等。
二、U-Boot通過TFTP下載內核啟動并掛載網絡文件系統
TFTP下載內核啟動掛載網絡文件系統方式,即通過TFTP服務器下載內核啟動,文件系統掛載到Linux服務器下的已經搭建好的/opt/nfs文件系統目錄下。過程如下:
1.SEED-DVS6446上電啟動,顯示上述啟動信息,當顯示"hit any key to stop
autoboot:
3"時按下回車鍵,中斷系統自動啟動,進行啟動參數配置,此時顯示如下提示符:SEED-DVS6446_v1.2#:
;
2.配置啟動參數,在提示符下輸入以下配置參數:setenv bootargs mem=120M
console=ttyS0,115200n8 root=/dev/nfs noinitrd rw ip=dhcp nfsroot=nfs
ip=/opt/nfs video=dm64xxfbutput=pal
3.設置tftp服務器的IP地址和DVS6446的IP地址,在提示符下分別輸入如下配置(tftp服務器的IP地址和DVS6446的IP地址,根據實際應用配置):
setenv serverip _._._._
setenv ipaddr _._._._
4.下載內核并啟動(默認用戶已經將內核文件uImage復制到tftp服務的根目錄下),在提示符下配置下載啟動:
tftp 0x80800000 uImage;bootm 0x80800000
5.配置完成系統啟動,并自動掛載網絡文件系統,啟動完畢顯示等待登錄信息。
三、通過U-Boot配置參數實現VGA視頻輸出與復合視頻輸出的配置
SEED-DVS6446支持復合視頻與VGA視頻輸出顯示,默認采用復合視頻輸出,用戶可以通過U-Boot中的參數配置實現VGA輸出。以TFTP下載內核啟動掛載網絡文件系統方式為例,詳細步驟如下:
1.SEED-DVS6446 U-Boot啟動,顯示啟動信息,當顯示"hit any key to stop
autoboot:
3"時按下回車鍵,中斷系統自動啟動,進行啟動參數配置,此時顯示如下提示符:SEED-DVS6446_v1.2#:
;
2.配置啟動參數,在提示符下輸入以下配置參數:setenv bootargs mem=120M
console=ttyS0,115200n8 root=/dev/nfs noinitrd rw ip=dhcp nfsroot=nfs
ip=/opt/nfs video=dm64xxfb format=vgautput=pal
3.設置tftp服務器的IP地址和DVS6446的IP地址,在提示符下分別輸入如下配置:
setenv serverip _._._._
setenv ipaddr _._._._
4.下載內核并啟動,在提示符下配置下載啟動:
tftp 0x80800000 uImage;bootm 0x80800000
5.配置完成系統啟動,并自動掛載網絡文件系統,將VGA接口同SEED-DVS6446平臺的VGA輸出口連接,啟動完畢即顯示等待登錄信息,VGA顯示器左上角顯示Monta
Vista Linux的圖標。
四、從CCS直接燒錄到DDR情況下,不需要U-Boot,此時cmd的通用腳本文件如下:
-lrts32e.lib
-l..\..\csl\arm\lib\Debug\csl_davinciArm9.lib
-l..\..\lib\davincievmbsl.lib
-stack 0x00000800
-heap 0x00000800
MEMORY
{
IRAM: o = 0x00000000 l = 0x00004000
DRAM: o = 0x00008000 l = 0x00004000
AEMIF: o = 0x02000000 l = 0x02000000
DDR2: o = 0x80000000 l = 0x08000000
}
SECTIONS
{
.bss > DDR2
.cinit > DDR2
.cio > DDR2
.const > DDR2
.stack > DDR2
.sysmem > DDR2
.text > DDR2
.ddr2 > DDR2
}
Davinci U-Boot系列之三:U-Boot常用命令和常用環境變量
U-Boot常用命令
?:
得到所有命令列表或者列出某個命令的幫助。
用法:? [command ...]
說明:列出命令的幫助信息,當不帶參數時,列出所有命令及簡要說明。
help:
同?
printenv:
打印環境變量。
用法:printenv [name]
說明:name一般是Hiboot環境變量的名字,也可以是用戶自定義的變量;當value為空時,刪除變量
"name", 否則設置變量"name",且值為"value".
saveenv:
保存變量。
用法:saveenv
說明:保存變量及其值到flash.
ping:
用于簡單判斷目標機網絡狀態或本機網絡工作狀態。
tftp:
從tftp服務器中下載文件至RAM或者Flash中。
用法:tftp addr file
說明:將file文件下載到地址為addr的RAM或者Flash中。注意:使用tftp時,必須先設置好網絡配置,使用setenv配置ipaddr、netmask、serverip參數。
cp:
拷貝內存。
用法:cp[.b,.w,.l]source target count.
說明:把地址為source的內存區域的值,拷貝到地址target的內存區域,區域的大小為count,source和target可以是SDRAM的地址訪問,也可以是flash的地址范圍,實際拷貝的大小,因命令的不同而不同。cp.b拷貝1xcount
bytes,簡單使用cp時,默認為4xcount bytes.
go:
跳轉到指定地址,執行代碼。
用法:go addr [arg ...]
說明:執行地址addr處的二進制代碼,可傳遞arg參數。
reset:
復位cpy處理器
用法:reset
bootm:
設置運行環境,并開始執行二進制代碼。
用法:bootm [addr[arg ...]]
說明:執行addr處的代碼,要求二進制代碼為mkimage處理過的二進制文件。
erase:
擦除Flash內容.
用法1:erase start end.
說明:擦除地址從start到地址為end區域的內容。
注意:flash的擦除操作必須以塊為最小單位,因此地址start必須為某塊的其實地址,end地址則為某塊的結束地址,如flash的基地址為0x34000000,塊大小為0x20000,則操作erase
0x34000000 0x3401FFFF為可操作的,而erase 0x34000003 0x3401FFFF或者erase
0x34000000 0x3401FF00均不可操作。
用法2:erase N:SF[-SL].
說明:擦除第N塊flash的從扇區SF到SL扇區的內容。
用法3:erase bank N.
擦除第N塊flash的內容。
用法4:erase all
說明:擦除所有flash的內容。
nand erase:
擦除nand flash內容
用法:nand erase start size
nand write:
用來將內存數據寫入nand flash
用法:nand write sram_addr start size
說明:將內存sram_addr處的數據寫入nand flash
start地址開始的空間,寫入大小為size.
U-Boot常用環境變量
ipaddr:
設置DVS6446平臺的IP地址
說明:setenv ipaddr 192.168.253.53
serverip:
設置服務器ip地址,多用于tftp中
說明:setenv serverip 192.168.253.33
bootargs:
啟動OS的啟動參數
說明:setenv bootargs mem=120M console=ttys0,115200n8 ...
解釋:設置傳遞參數,如內存大小,控制臺,根文件系統等。
bootcmd:
設置自動及執行命令。啟動延時根據bootdelay的值,若沒有設置bootdelay,默認延時3秒
說明:setenv bootcmd bootm
0x23450000,即設置啟動后自動執行0x23450000處的代碼。
bootdelay:
設置自啟動延時時間,單位為秒。只有當bootcmd變量被設置后,該變量才有效。改變了值范圍為大于等于-1的整數,當設置為-1時,關閉自啟動的功能。
說明:setenv bootdelay 4 ; 設置自啟動延時4秒
說明:setenv bootdelay -1; 關閉自啟動功能
提示:在延時時間內可按任意鍵切換到命令行模式。注意,在產品開發調試階段請勿設置延時時間為0,若設置,可以在啟動瞬間使用CTRL+C中斷程序而進入命令行模式。
netmask:
設置子網掩碼。
說明:setenv netmask 255.255.255.0
gatewayip:
設置網關。
說明:setenv gatewayip 192.168.253.1
ethaddr:
設置以太網網卡MAC地址。
說明:setenv ethaddr xx: xx: xx: xx: xx: xx
注意:設置ethaddr后,應運行saveenv,重啟才能使MAC地址配置有效。
聲明:以上文章來自http://www.tichinese.com/bbs/viewthread.php?tid=151&extra=page%3D9,此處只作為學習之用
附:
uboot常用命令
顯示環境變量: printenv
保存環境變量: saveenv
設置內核文件名: setenv bootfile
uImage-dm355,其中uImage-dm355為對應的文件名
設置內核啟動方式:
1,從網絡啟動:setenv bootcmd 'tftp;bootm'
2,從FLASH啟動
對于DM355: setenv bootcmd 'nboot 0x80700000 0
0x400000;bootm'
對于DM6446: setenv bootcmd 'bootm 0x2040000'
設置bootargs:
DM355:
文件系統:NFS,文件系統的路徑:nfsroot=192.168.1.55:/home/filesys;IP:DHCP;輸入:模擬輸入;輸出NTSC
setenv bootargs console=ttyS0,115200n8 noinitrd rw ip=dhcp
root=/dev/nfs
nfsroot=192.168.1.55:/home/filesys,nolock mem=100M
v4l2_video_capture=:device=TVP5146
video=dm64xxfb:output=ntsc
文件系統:NFS,文件系統的路徑:nfsroot=192.168.1.55:/home/filesys;IP:DHCP;輸入:數字CMOS輸入;輸出PAL
setenv bootargs console=ttyS0,115200n8 noinitrd rw ip=dhcp
root=/dev/nfs
nfsroot=192.168.1.55:/home/filesys,nolock mem=100M
v4l2_video_capture=:device=MT9T001
video=dm64xxfb:output=pal
文件系統:本地FLASH;IP:固定IP;輸入:數字CMOS輸入;輸出PAL
setenv bootargs console=ttyS0,115200n8 noinitrd rw
rootfstype=yaffs2
ip=192.168.1.11:192.168.1.55:192.168.1.1:255.255.255.0:192.168.1.11::off
root=/dev/mtdblock3 nolock
mem=90M v4l2_video_capture=:device=MT9T001
video=dm64xxfb:output=pal
DM6446:
文件系統:NFS,文件系統的路徑:nfsroot=192.168.1.55:/home/filesys;IP:DHCP;輸入:模擬輸入;輸出PAL
setenv bootargs console=ttyS0,115200n8 noinitrd rw ip=dhcp
root=/dev/nfs
nfsroot=192.168.1.55:/home/filesys,nolock mem=38M
v4l2_video_capture=:device=TVP5146
video=dm64xxfb:output=pal
文件系統:本地硬盤;IP:DHCP;輸入:模擬輸入;輸出PAL
setenv bootargs console=ttyS0,115200n8 noinitrd rw ip=dhcp
root=/dev/hda1
nfsroot=192.168.1.55:/home/filesys,nolock mem=38M
v4l2_video_capture=:device=TVP5146
video=dm64xxfb:output=pal
文件系統:NFS,文件系統的路徑:nfsroot=192.168.1.55:/home/filesys;IP:固定IP;輸入:模擬輸入;輸出NTSC
setenv bootargs console=ttyS0,115200n8 noinitrd rw
ip=192.168.1.240::192.168.1.2 root=/dev/nfs
nfsroot=192.168.1.55:/home/filesys, nolock mem=38M
video=dm64xxfb:output=ntsc v4l2_video_capture=:device=TVP5146
文件系統:本地硬盤;IP:固定IP;輸入:模擬輸入;輸出PAL
setenv bootargs console=ttyS0,115200n8 noinitrd rw
ip=192.168.1.240::192.168.1.2 root=/dev/hda1
nfsroot=192.168.1.55:/home/filesys,nolock mem=38M
v4l2_video_capture=:device=TVP5146
video=dm64xxfb:output=pal
燒錄內核至FLASH
DM355:
tftp 80700000 uImage-dm355:其中uImage-dm355為對應的文件名
nand erase 400000 200000
nand write 0x80700000 0x400000 0x200000
setenv bootcmd 'nboot 0x80700000 0 0x400000;bootm'
DM6446
tftp
erase 0x2040000
+0x157fb0(其中0x157fb0為對應內核文件的大小,通過tftp命令可以統計出來)
setenv bootcmd 'bootm 0x2040000'
cp.b 0x80700000 0x2040000
0x157fb0(其中0x157fb0為對應內核文件的大小,通過tftp命令可以統計出來)
LINUX 常用命令
路徑切換命令:
顯示當前所在目錄路徑
pwd
進入/root/encode目錄
cd /root/encode
如果目前所在目錄是/root
則輸入:
cd encode即可進入/root/encode目錄
驅動掛載命令:
查看系統上掛載的移動設備
fdisk -l
將USB設備(/dev/sda1)mount到mnt/usb目錄下
mount /dev/sda1 /mnt/usb
拷貝命令:
從目錄A(/root/encode)拷貝一文件到目錄B(mnt/usb)
cp /root/encode/test.mpeg4 mnt/usb
進程終止命令
顯示系統進程:ps -a
終止某進程: kill 996(996為目前某進程的PID號)
應用程序執行命令
執行應用程序encode
./encode
后臺執行應用程序encode
./encode&(在DM355脫機方式,建議通過此方式執行應用程序,方可以通過kill命令進行進程的終止)
打包命令
tar -zcf A.tar.gz B(其中B為欲打包的目錄,A為壓縮包的命名)
解包命令
tar -xzf ti-davinci.tar.gz(其中
ti-davinci.tar.gz欲解包的命名,解壓在當前目錄
Linux操作系統,負責設備初始化、用戶圖形界面管理。ARM處理器端的MontaVista
Linux 加載啟動,需要有Bootloader完成內核由Flash空間加載到DDR空間并啟動Linux系統。Bootloader就是在OS內核運行之前運行的一段程序,通過這段引導程序,初始化硬件設備、建立內存空間映射圖,使系統的軟硬件環境處于一個合適的狀態,為OS內核的啟動做好準備。目前TI的 DM6446平臺采用U-Boot作為Bootloader引導程序。
一、U-Boot簡介
U-Boot,全稱Universal Boot Loader,是遵循GPL(General Public
License) 條款的開放源碼項目。U-Boot不僅僅支持嵌入式Linux系統的引導,還支持 NetBSD,VxWorks,QNX,RTEMS,artos,LynxOS嵌入式操作系統。U-Boot支持 PowerPC,MIPS,X86,ARM,NIOS,XScale等諸多常用系統的處理器。U-Boot項目的開發目標,即是支持盡可能多的嵌入式處理器和嵌入式操作系統。
U-Boot的特點:
> 開放源碼;
> 支持多種嵌入式操作系統內核,如:式LinuxNetBSD,VxWorks,QNX,RTEMS,artos,LynxOS;
> 支持多個處理器系列,如PowerPC,MIPS,X86,ARM,NIOS,XScale;
> 較高的可靠性和穩定性;
> 高度靈活的功能設置,適合U-Boot調試、操作系統不同引導要求等;
> 豐富的設備驅動源碼,如串口、以太網、SDRAM、FLASH、EEPROM、RTC、鍵盤等;
> 較為豐富的開發調試文檔與強大的網絡技術支持。
二、U-Boot目錄結構
> board: 目標板相關文件,主要包含SDRAM,FLASH驅動;
> common:獨立于處理器體系結構的通用代碼,如內存大小探測與故障檢測;
> cpu:
> 與處理器相關的文件。如mpc8xx子目錄下含串口、網口、LCD驅動及中斷初始化等文件;
> driver: 通用設備驅動,如CFI FLASH 驅動(目前對INTEL FLASH支持較好);
> doc:U-Boot的說明文檔;
> examples:U-Boot下運行的實例程序,如hello_world.c,timer.c;
> include:
> U-Boot頭文件,configs子目錄下與目標板相關的配置頭文件是移植過程中經常要修改的文件;
> lib_xxx:
> 處理器體系相關的文件,如lib_ppc,lib_arm目錄分別包含與PowerPC,ARM體系結構相關的文件;
> net: 網絡功能相關的文件目錄,如bootp,nfs,tftp;
> post: 上電自檢文件目錄,尚待進一步完善;
> rtc: RTC驅動程序;
> tools: 用于創建U-Boot S-RECORD和BIN鏡像文件的工具;
U-Boot目前已經支持TI的DM6446平臺,在board/davinci目錄下為devem目標板相關文件,其中包含了網絡、flash等的驅動程序。
Davinci U-Boot系列之二:U-Boot在SEED-DVS6446平臺上的應用
SEED-DVS6446平臺采用U-Boot-1.2.0版本,針對NAND
Flash、Net、DDR驅動修改,并提供更多的U-Boot命令支持。下面以SEED-DVS6446平臺為例,說明U-Boot在該平臺上的常用配置使用。
一、U-Boot啟動
1.軟件配置
打開串口超級終端(PC超級終端、Hyperterminal、Teraterm),配置相關參數如下:
> 波特率:115200
> 數據位:8
> 奇偶較驗:None
> 停止位:1
> 數據流控制:None
2.硬件配置
> DB9串口線一端連接DAVINCI平臺串口,另一端連接PC機串口;
> DAVINCI平臺的視頻采集口連接攝像頭或者DVD作為視頻輸入;
> DAVINCI平臺的視頻輸出口連接顯示設備;
> DAVINCI平臺的網絡接口通過網線連接至路由器等網絡接口,或者通過直通線與
PC機網口連接;
> DAVINCI平臺采用5V-5A電源供電,啟動系統。
此時可以在串口超級終端看到DVS6446平臺的一些相關信息,比如ARM,DDR時鐘頻率,U-Boot版本等等。
二、U-Boot通過TFTP下載內核啟動并掛載網絡文件系統
TFTP下載內核啟動掛載網絡文件系統方式,即通過TFTP服務器下載內核啟動,文件系統掛載到Linux服務器下的已經搭建好的/opt/nfs文件系統目錄下。過程如下:
1.SEED-DVS6446上電啟動,顯示上述啟動信息,當顯示"hit any key to stop
autoboot:
3"時按下回車鍵,中斷系統自動啟動,進行啟動參數配置,此時顯示如下提示符:SEED-DVS6446_v1.2#:
;
2.配置啟動參數,在提示符下輸入以下配置參數:setenv bootargs mem=120M
console=ttyS0,115200n8 root=/dev/nfs noinitrd rw ip=dhcp nfsroot=nfs
ip=/opt/nfs video=dm64xxfbutput=pal
3.設置tftp服務器的IP地址和DVS6446的IP地址,在提示符下分別輸入如下配置(tftp服務器的IP地址和DVS6446的IP地址,根據實際應用配置):
setenv serverip _._._._
setenv ipaddr _._._._
4.下載內核并啟動(默認用戶已經將內核文件uImage復制到tftp服務的根目錄下),在提示符下配置下載啟動:
tftp 0x80800000 uImage;bootm 0x80800000
5.配置完成系統啟動,并自動掛載網絡文件系統,啟動完畢顯示等待登錄信息。
三、通過U-Boot配置參數實現VGA視頻輸出與復合視頻輸出的配置
SEED-DVS6446支持復合視頻與VGA視頻輸出顯示,默認采用復合視頻輸出,用戶可以通過U-Boot中的參數配置實現VGA輸出。以TFTP下載內核啟動掛載網絡文件系統方式為例,詳細步驟如下:
1.SEED-DVS6446 U-Boot啟動,顯示啟動信息,當顯示"hit any key to stop
autoboot:
3"時按下回車鍵,中斷系統自動啟動,進行啟動參數配置,此時顯示如下提示符:SEED-DVS6446_v1.2#:
;
2.配置啟動參數,在提示符下輸入以下配置參數:setenv bootargs mem=120M
console=ttyS0,115200n8 root=/dev/nfs noinitrd rw ip=dhcp nfsroot=nfs
ip=/opt/nfs video=dm64xxfb format=vgautput=pal
3.設置tftp服務器的IP地址和DVS6446的IP地址,在提示符下分別輸入如下配置:
setenv serverip _._._._
setenv ipaddr _._._._
4.下載內核并啟動,在提示符下配置下載啟動:
tftp 0x80800000 uImage;bootm 0x80800000
5.配置完成系統啟動,并自動掛載網絡文件系統,將VGA接口同SEED-DVS6446平臺的VGA輸出口連接,啟動完畢即顯示等待登錄信息,VGA顯示器左上角顯示Monta
Vista Linux的圖標。
四、從CCS直接燒錄到DDR情況下,不需要U-Boot,此時cmd的通用腳本文件如下:
-lrts32e.lib
-l..\..\csl\arm\lib\Debug\csl_davinciArm9.lib
-l..\..\lib\davincievmbsl.lib
-stack 0x00000800
-heap 0x00000800
MEMORY
{
IRAM: o = 0x00000000 l = 0x00004000
DRAM: o = 0x00008000 l = 0x00004000
AEMIF: o = 0x02000000 l = 0x02000000
DDR2: o = 0x80000000 l = 0x08000000
}
SECTIONS
{
.bss > DDR2
.cinit > DDR2
.cio > DDR2
.const > DDR2
.stack > DDR2
.sysmem > DDR2
.text > DDR2
.ddr2 > DDR2
}
Davinci U-Boot系列之三:U-Boot常用命令和常用環境變量
U-Boot常用命令
?:
得到所有命令列表或者列出某個命令的幫助。
用法:? [command ...]
說明:列出命令的幫助信息,當不帶參數時,列出所有命令及簡要說明。
help:
同?
printenv:
打印環境變量。
用法:printenv [name]
說明:name一般是Hiboot環境變量的名字,也可以是用戶自定義的變量;當value為空時,刪除變量
"name", 否則設置變量"name",且值為"value".
saveenv:
保存變量。
用法:saveenv
說明:保存變量及其值到flash.
ping:
用于簡單判斷目標機網絡狀態或本機網絡工作狀態。
tftp:
從tftp服務器中下載文件至RAM或者Flash中。
用法:tftp addr file
說明:將file文件下載到地址為addr的RAM或者Flash中。注意:使用tftp時,必須先設置好網絡配置,使用setenv配置ipaddr、netmask、serverip參數。
cp:
拷貝內存。
用法:cp[.b,.w,.l]source target count.
說明:把地址為source的內存區域的值,拷貝到地址target的內存區域,區域的大小為count,source和target可以是SDRAM的地址訪問,也可以是flash的地址范圍,實際拷貝的大小,因命令的不同而不同。cp.b拷貝1xcount
bytes,簡單使用cp時,默認為4xcount bytes.
go:
跳轉到指定地址,執行代碼。
用法:go addr [arg ...]
說明:執行地址addr處的二進制代碼,可傳遞arg參數。
reset:
復位cpy處理器
用法:reset
bootm:
設置運行環境,并開始執行二進制代碼。
用法:bootm [addr[arg ...]]
說明:執行addr處的代碼,要求二進制代碼為mkimage處理過的二進制文件。
erase:
擦除Flash內容.
用法1:erase start end.
說明:擦除地址從start到地址為end區域的內容。
注意:flash的擦除操作必須以塊為最小單位,因此地址start必須為某塊的其實地址,end地址則為某塊的結束地址,如flash的基地址為0x34000000,塊大小為0x20000,則操作erase
0x34000000 0x3401FFFF為可操作的,而erase 0x34000003 0x3401FFFF或者erase
0x34000000 0x3401FF00均不可操作。
用法2:erase N:SF[-SL].
說明:擦除第N塊flash的從扇區SF到SL扇區的內容。
用法3:erase bank N.
擦除第N塊flash的內容。
用法4:erase all
說明:擦除所有flash的內容。
nand erase:
擦除nand flash內容
用法:nand erase start size
nand write:
用來將內存數據寫入nand flash
用法:nand write sram_addr start size
說明:將內存sram_addr處的數據寫入nand flash
start地址開始的空間,寫入大小為size.
U-Boot常用環境變量
ipaddr:
設置DVS6446平臺的IP地址
說明:setenv ipaddr 192.168.253.53
serverip:
設置服務器ip地址,多用于tftp中
說明:setenv serverip 192.168.253.33
bootargs:
啟動OS的啟動參數
說明:setenv bootargs mem=120M console=ttys0,115200n8 ...
解釋:設置傳遞參數,如內存大小,控制臺,根文件系統等。
bootcmd:
設置自動及執行命令。啟動延時根據bootdelay的值,若沒有設置bootdelay,默認延時3秒
說明:setenv bootcmd bootm
0x23450000,即設置啟動后自動執行0x23450000處的代碼。
bootdelay:
設置自啟動延時時間,單位為秒。只有當bootcmd變量被設置后,該變量才有效。改變了值范圍為大于等于-1的整數,當設置為-1時,關閉自啟動的功能。
說明:setenv bootdelay 4 ; 設置自啟動延時4秒
說明:setenv bootdelay -1; 關閉自啟動功能
提示:在延時時間內可按任意鍵切換到命令行模式。注意,在產品開發調試階段請勿設置延時時間為0,若設置,可以在啟動瞬間使用CTRL+C中斷程序而進入命令行模式。
netmask:
設置子網掩碼。
說明:setenv netmask 255.255.255.0
gatewayip:
設置網關。
說明:setenv gatewayip 192.168.253.1
ethaddr:
設置以太網網卡MAC地址。
說明:setenv ethaddr xx: xx: xx: xx: xx: xx
注意:設置ethaddr后,應運行saveenv,重啟才能使MAC地址配置有效。
聲明:以上文章來自http://www.tichinese.com/bbs/viewthread.php?tid=151&extra=page%3D9,此處只作為學習之用
附:
uboot常用命令
顯示環境變量: printenv
保存環境變量: saveenv
設置內核文件名: setenv bootfile
uImage-dm355,其中uImage-dm355為對應的文件名
設置內核啟動方式:
1,從網絡啟動:setenv bootcmd 'tftp;bootm'
2,從FLASH啟動
對于DM355: setenv bootcmd 'nboot 0x80700000 0
0x400000;bootm'
對于DM6446: setenv bootcmd 'bootm 0x2040000'
設置bootargs:
DM355:
文件系統:NFS,文件系統的路徑:nfsroot=192.168.1.55:/home/filesys;IP:DHCP;輸入:模擬輸入;輸出NTSC
setenv bootargs console=ttyS0,115200n8 noinitrd rw ip=dhcp
root=/dev/nfs
nfsroot=192.168.1.55:/home/filesys,nolock mem=100M
v4l2_video_capture=:device=TVP5146
video=dm64xxfb:output=ntsc
文件系統:NFS,文件系統的路徑:nfsroot=192.168.1.55:/home/filesys;IP:DHCP;輸入:數字CMOS輸入;輸出PAL
setenv bootargs console=ttyS0,115200n8 noinitrd rw ip=dhcp
root=/dev/nfs
nfsroot=192.168.1.55:/home/filesys,nolock mem=100M
v4l2_video_capture=:device=MT9T001
video=dm64xxfb:output=pal
文件系統:本地FLASH;IP:固定IP;輸入:數字CMOS輸入;輸出PAL
setenv bootargs console=ttyS0,115200n8 noinitrd rw
rootfstype=yaffs2
ip=192.168.1.11:192.168.1.55:192.168.1.1:255.255.255.0:192.168.1.11::off
root=/dev/mtdblock3 nolock
mem=90M v4l2_video_capture=:device=MT9T001
video=dm64xxfb:output=pal
DM6446:
文件系統:NFS,文件系統的路徑:nfsroot=192.168.1.55:/home/filesys;IP:DHCP;輸入:模擬輸入;輸出PAL
setenv bootargs console=ttyS0,115200n8 noinitrd rw ip=dhcp
root=/dev/nfs
nfsroot=192.168.1.55:/home/filesys,nolock mem=38M
v4l2_video_capture=:device=TVP5146
video=dm64xxfb:output=pal
文件系統:本地硬盤;IP:DHCP;輸入:模擬輸入;輸出PAL
setenv bootargs console=ttyS0,115200n8 noinitrd rw ip=dhcp
root=/dev/hda1
nfsroot=192.168.1.55:/home/filesys,nolock mem=38M
v4l2_video_capture=:device=TVP5146
video=dm64xxfb:output=pal
文件系統:NFS,文件系統的路徑:nfsroot=192.168.1.55:/home/filesys;IP:固定IP;輸入:模擬輸入;輸出NTSC
setenv bootargs console=ttyS0,115200n8 noinitrd rw
ip=192.168.1.240::192.168.1.2 root=/dev/nfs
nfsroot=192.168.1.55:/home/filesys, nolock mem=38M
video=dm64xxfb:output=ntsc v4l2_video_capture=:device=TVP5146
文件系統:本地硬盤;IP:固定IP;輸入:模擬輸入;輸出PAL
setenv bootargs console=ttyS0,115200n8 noinitrd rw
ip=192.168.1.240::192.168.1.2 root=/dev/hda1
nfsroot=192.168.1.55:/home/filesys,nolock mem=38M
v4l2_video_capture=:device=TVP5146
video=dm64xxfb:output=pal
燒錄內核至FLASH
DM355:
tftp 80700000 uImage-dm355:其中uImage-dm355為對應的文件名
nand erase 400000 200000
nand write 0x80700000 0x400000 0x200000
setenv bootcmd 'nboot 0x80700000 0 0x400000;bootm'
DM6446
tftp
erase 0x2040000
+0x157fb0(其中0x157fb0為對應內核文件的大小,通過tftp命令可以統計出來)
setenv bootcmd 'bootm 0x2040000'
cp.b 0x80700000 0x2040000
0x157fb0(其中0x157fb0為對應內核文件的大小,通過tftp命令可以統計出來)
LINUX 常用命令
路徑切換命令:
顯示當前所在目錄路徑
pwd
進入/root/encode目錄
cd /root/encode
如果目前所在目錄是/root
則輸入:
cd encode即可進入/root/encode目錄
驅動掛載命令:
查看系統上掛載的移動設備
fdisk -l
將USB設備(/dev/sda1)mount到mnt/usb目錄下
mount /dev/sda1 /mnt/usb
拷貝命令:
從目錄A(/root/encode)拷貝一文件到目錄B(mnt/usb)
cp /root/encode/test.mpeg4 mnt/usb
進程終止命令
顯示系統進程:ps -a
終止某進程: kill 996(996為目前某進程的PID號)
應用程序執行命令
執行應用程序encode
./encode
后臺執行應用程序encode
./encode&(在DM355脫機方式,建議通過此方式執行應用程序,方可以通過kill命令進行進程的終止)
打包命令
tar -zcf A.tar.gz B(其中B為欲打包的目錄,A為壓縮包的命名)
解包命令
tar -xzf ti-davinci.tar.gz(其中
ti-davinci.tar.gz欲解包的命名,解壓在當前目錄