日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Davinci及U-boot的一些介绍

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

總結(jié)

以上是生活随笔為你收集整理的Davinci及U-boot的一些介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。