數(shù)字多媒體處理器TMS320DM355啟動分析
摘 要: 分析了TI公司的TMS320DM355的啟動方式和NAND啟動流程,使開發(fā)者能夠根據(jù)實際需求改動DVSDK中的UBL與編譯U-Boot,并排除開發(fā)過程中出現(xiàn)的錯誤。使開發(fā)者通過各種方式下載操作系統(tǒng)內(nèi)核映像至DM355的Flsah,并建立NFS文件系統(tǒng),從而建立一個完整的開發(fā)環(huán)境。
關(guān)鍵詞: DM355;啟動方式;NAND Flash;視頻監(jiān)控
TMS320DM355(以下簡稱DM355)處理器是TI公司推出的面向便攜高清視頻應(yīng)用的基于ARM9+協(xié)處理器架構(gòu)的新型低成本DaVinci平臺[1-2],主要應(yīng)用于媒體播放器、數(shù)碼相機(jī)、數(shù)碼相框、IP網(wǎng)絡(luò)攝像機(jī)、視頻嬰兒監(jiān)視器等[3]。該處理器具有獨特的啟動方式,其啟動方式的選擇和硬件設(shè)置是開發(fā)的關(guān)鍵問題之一[4]。本文基于DM355的嵌入式目標(biāo)板和TI公司的DVSDK,介紹了DM355的啟動方式設(shè)置、啟動并引導(dǎo)U-Boot的過程。
1 總體啟動流程
1.1 啟動方式設(shè)置
DM355的ARM可以從異步外部存儲器接口(AEMIF)上的OneNAND或者從ARM的內(nèi)部ROM啟動,這是由管腳BTSEL[1:0]的配置決定的[5]。BTSEL[1:0]也可以進(jìn)一步設(shè)置ROM啟動方式,即在芯片重置之后,除了當(dāng)BTSEL[1:0]=01表明AEMIF已啟動外,ARM一定從內(nèi)部ROM的0x00008000處開始啟動,ARM內(nèi)部ROM中的這部分程序稱作ROM Boot Loader(簡稱RBL)。因是TI公司嵌在DM355的內(nèi)部ROM里面的,用戶不能更改。
BTSEL[1:0]共有如下4種設(shè)置[6]:
(1)BTSEL[1:0]=01時,為AEMIF啟動方式,這種模式由硬件控制,啟動不包含ARM內(nèi)部ROM(即RBL不運行)。在由OneNAND啟動的情況下,用戶必須自己在OneNAND的啟動頁中放入必要的啟動代碼,這些代碼必須為OneNAND設(shè)備設(shè)置AEMIF模塊。在AEMIF被設(shè)置之后,啟動會緊跟OneNAND啟動頁中的AEMIF管理頁而繼續(xù)。
(2)BTSEL[1:0]=00時,RBL運行,NAND啟動。
(3)BTSEL[1:0]=10時,RBL運行,MMC/SD啟動。
(4)BTSEL[1:0]=11時,RBL運行,UART啟動。
由此可見,不經(jīng)由RBL的啟動方式只有BTSEL[1:0]=01一種,而經(jīng)由RBL的啟動方式有3種(此時BTSEL[1:0]≠01)。
當(dāng)芯片被設(shè)置成NAND啟動模式時,如果啟動失敗,則DM355會嘗試MMC/SD 啟動;如果MMC/SD 啟動失敗,則DM355會再次嘗試這種啟動方式;如果UART啟動失敗,DM355會再次嘗試這種啟動方式。
DM355的總體啟動流程如圖1所示。
NAND啟動與OneNAND啟動適用于系統(tǒng)參數(shù)和功能固定的應(yīng)用場合,二者在價格和讀寫速度上的差異也使得設(shè)計者可以根據(jù)需求做出權(quán)衡。而MMC/SD啟動適用于系統(tǒng)參數(shù)和功能經(jīng)常需要改變的場合。UART啟動一般應(yīng)用于調(diào)試階段而非實際應(yīng)用。
在設(shè)計系統(tǒng)選擇啟動方式時,可以根據(jù)各種方式的特點,選擇合適的方式啟動系統(tǒng)。
1.2 啟動中的狀態(tài)標(biāo)志
DM355的RBL會用GIO61來指示啟動狀態(tài)(可以用來驅(qū)動LED),這可以幫助開發(fā)者更直觀地觀察系統(tǒng)的狀態(tài)。重啟之后,GIO61被初始化為低電平。
(1)如系統(tǒng)上電時通過NAND啟動,未成功后會嘗試通過MMC/SD啟動,在此期間GIO61以4 Hz的頻率切換高低電平。
(2)如系統(tǒng)被上電時通過MMC/SD啟動,在嘗試啟動期間GIO61以4 Hz的頻率切換高低電平。
(3)如系統(tǒng)上電時通過UART啟動,在嘗試啟動期間GIO61以2 Hz的頻率切換高低電平。
當(dāng)啟動成功之后,在程序被移交給UBL之前,GIO61被設(shè)置為高電平。其過程如圖2所示。