• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      數(shù)字多媒體處理器TMS320DM355啟動分析*

      2012-07-03 00:23:50苑瑋琦
      電子技術(shù)應(yīng)用 2012年3期
      關(guān)鍵詞:描述符低電平魔幻

      苑瑋琦,黃 旭

      (沈陽工業(yè)大學(xué) 視覺檢測技術(shù)研究所,遼寧 沈陽110870)

      TMS320DM355(以下簡稱 DM355)處理器是 TI公司推出的面向便攜高清視頻應(yīng)用的基于ARM9+協(xié)處理器架構(gòu)的新型低成本DaVinci平臺[1-2],主要應(yīng)用于媒體播放器、數(shù)碼相機、數(shù)碼相框、IP網(wǎng)絡(luò)攝像機、視頻嬰兒監(jiān)視器等[3]。該處理器具有獨特的啟動方式,其啟動方式的選擇和硬件設(shè)置是開發(fā)的關(guān)鍵問題之一[4]。本文基于DM355的嵌入式目標板和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]也可以進一步設(shè)置ROM啟動方式,即在芯片重置之后,除了當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)。

      當芯片被設(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)標志

      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以4Hz的頻率切換高低電平。

      (3)如系統(tǒng)上電時通過UART啟動,在嘗試啟動期間GIO61以2 Hz的頻率切換高低電平。

      當啟動成功之后,在程序被移交給UBL之前,GIO61被設(shè)置為高電平。其過程如圖2所示。

      總之,RBL在 BTSEL[1:0]≠01時運行的情況下,控制權(quán)被交給 RBL,待讀取 BTSEL[1:0]的狀態(tài)之后,RBL才執(zhí)行合適的代碼。

      2 NAND啟動流程

      NAND Flash存儲器具有容量較大、擦寫速度快等優(yōu)點,適用于大量數(shù)據(jù)的存儲,但不支持片內(nèi)執(zhí)行(XIP)。NOR Flash支持片內(nèi)執(zhí)行,讀速度稍快于NAND Flash,但寫入速度遠落后于NAND Flash,且二者接口不同,這就決定了NAND Flash適用于大規(guī)模數(shù)據(jù)存儲而NOR Flash適用于小量代碼存儲的特點。另外,接口的特點也決定了NAND Flash的讀寫更復(fù)雜,必需要驅(qū)動。

      當BTSEL[1:0]被設(shè)置為 00時,NAND模式將啟動,NAND啟動模式默認NAND位于EM_CE0接口,這個接口的總線設(shè)置由管腳AECFG[3:0]確定。AECFG[3:0]必須被正確地設(shè)置,EMIF的信號才能被NAND器件采用。

      NAND啟動流程如下:

      (1)RBL 執(zhí)行,初始化 0x4000~0x7FFF(2 KB)的空間作為堆棧,最后 32 bit(0x7FFC~0x8000)閑置,因為這里會被寫入找到的UBL的塊號。此時會禁止所有中斷、中斷請求和快速中斷請求。

      (2)NAND器件的設(shè)備ID被從NAND讀出來,然后從RBL的信息表中讀取出一些必要的信息(如頁大小和塊大小)。信息表是DM355所支持的NAND設(shè)備的列表;然后,RBL在NAND的block 1中的page 0尋找UBL的描述符。

      (3)如果有效的UBL沒有被找到(這取決于是否讀到了正確的魔幻數(shù)),下一個塊會繼續(xù)被尋找,最多連續(xù)搜尋24個塊,這是為了防止NAND中的壞塊,搜尋24個塊足夠應(yīng)付絕大部分NAND中的錯誤。

      魔幻數(shù)是基于在一個塊的第0頁的前32 bit讀取0xA1ACEDxx而探測到的,只有塊 1~塊 24的 page 0將會被讀取和尋找魔幻數(shù)。

      (4)當一個有效的UBL標識符被找到之后,這個塊的號碼被寫在ARM內(nèi)部RAM的最后32 bit,即0x7ffc~0x8000。這種特性是為了調(diào)試方便,通過讀這32 bit(例如通過JATG),可以知道UBL在哪一個NAND塊讀到了有效的UBL標識符,如果在搜尋完24個塊之后還沒有找到有用的標識符,則DM355將會嘗試通過MMC/SD啟動。

      (5)當有效的UBL被找到之后,RBL會處理 UBL描述符,描述符給出了裝載UBL和移交UBL控制權(quán)所需要的信息。接下來UBL被讀取和處理,RBL首先可能會根據(jù)魔幻數(shù)所提供的信息啟用一些與快速EMIF和高速緩存相關(guān)的操作。此外,描述符提供了在UBL的拷貝期間是否應(yīng)用DMA的信息。一但啟動條件確立了,RBL拷貝 UBL到 DM355的內(nèi)部 RAM,起始地址為0x00000020,開始的32 B是ARM的系統(tǒng)中斷向量表(8個向量,每個4 B)。UBL的拷貝始于這32 B的中斷向量表之后,提供了用戶裝載程序的必要的細節(jié)。表1為UBL描述符的格式。

      魔幻數(shù)的最后兩位決定了NAND的啟動模式,如表2所示。

      NAND RBL應(yīng)用4 bit ECC校驗來確定在將UBL讀取到內(nèi)部RAM時是否有錯誤發(fā)生。假如4 bit ECC校驗探測到了錯誤,則UBL會通過ECC修正算法來修正錯誤。如果由于其他原因讀取UBL失敗,則拷貝過程會因為需要魔幻數(shù)而立即暫停,然后RBL會從找到魔幻數(shù)的那一塊繼續(xù)尋找相鄰的塊,以找尋另一魔幻數(shù)。當找到下一魔幻數(shù)時,將重復(fù)這一過程。利用這種機制,魔幻數(shù)和UBL可以被復(fù)制達24次,給予NAND讀取錯誤以足夠的冗余和錯誤恢復(fù)能力。

      表1 UBL描述符格式

      表2 UBL魔幻數(shù)與特殊啟動模式

      如果在搜索了24個塊之后沒有找到有效的UBL描述符,則RBL會轉(zhuǎn)向去通過MMC/SD啟動。

      (6)將UBL讀取到內(nèi)部RAM之后,RBL將控制權(quán)交給UBL。

      (7)UBL開始掃描NAND以尋找ABL(Application Boot Loader)描述符的魔幻數(shù),如果找到了描述符,則UBL將ABL裝載進DDR,并跳轉(zhuǎn)到ABL的入口地址。TI公司的UBL在8和9兩個NAND塊中找尋ABL的描述符,如果找不到,則屏幕會顯示以下信息:

      UBL:Failed to read app descriptor

      UBL:NANDBoot()failed

      類似于UBL的描述符和魔幻數(shù),ABL的描述符和魔幻數(shù)分別如表3、表4所示。

      表3 ABL描述符格式

      NAND啟動的總體流程如圖3所示。

      3 嵌入式目標板

      基于DM355處理器的目標板原理框圖如圖4所示。

      表4 ABL魔幻數(shù)及特殊啟動模式

      目標板上主要資源包括:(1)TMS320DM355處理器,可工作在 216/270 MHz;(2)512 MB的 NAND Flash,型號為Sumsang K9F4G08U0A,包含4 096個塊,每塊含64個頁,頁大小為 2 048 B。芯片 ID為 0xDC[7];(3)128 MB DDR2,主頻為 533 MHz。

      4 通過CCS燒寫UBL及ABL

      (1)CCS的配置

      安裝TDS510驅(qū)動,連接TDS510仿真器、DM355及PC機,打開 CCS的配置程序,配置好DM355的 JATG仿真環(huán)境[8],使CCS可以識別目標板。

      (2)燒寫 UBL及 ABL(U-Boot)

      在CCS下打開TI公司的DVSDK中的NAND_programmer.pjt,這是一個向NAND中寫入UBL及ABL的CCS工程。打開nandProg.c可以看到下面定義好的UBL及ABL魔幻數(shù):

      在開發(fā)時可以根據(jù)開發(fā)需要對其進行改動,但要注意UBL及ABL的大小對其中一些參數(shù)的影響。

      (3)編譯NAND_programmer.pjt并運行,根據(jù)提示輸入編譯好的UBL與U-Boot二進制文件。DVSDK開發(fā)包中有利用CCS編譯UBL的工程,可以根據(jù)需求對其進行改動,但要注意其生成.BIN文件的大小,因為U-Boot在Lunix環(huán)境下進行編譯也生成一個.BIN格式的文件。

      (4)用串口線連接DM355與PC機,啟動 DM355目標板,登錄到U-Boot。此時可以通過U-Boot的指令來查看位于NAND中的UBL與RBL描述符[9],并證實修改的有關(guān)UBL和UBL的參數(shù)。

      實驗表明,系統(tǒng)能依照設(shè)定的方式從NAND啟動,并成功登陸U-Boot命令行,而且可以通過指令來查看魔幻數(shù)與描述符。下一步的工作是建立操作系統(tǒng)內(nèi)核,并下載到存儲器,建立文件系統(tǒng),從而建立完整的開發(fā)環(huán)境。

      [1]TI公司.面向便攜高清視頻應(yīng)用的DaVinci DM355處理器[J].世界電子元器件,2008(4):54-58.

      [2]Texas Instruments.DM355 Linux PSP 1.20 release notes[M].2009.

      [3]劉繼超.基于DM355的嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)設(shè)計[D].青島:青島科技大學(xué),2009.

      [4]王薇薇.基于DM355的視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[D].武漢:武漢理工大學(xué),2010

      [5]Texas Instruments.TMS320DM355 digital media system-on-Chip(DMSoC)-SPRS463G[M].2007.

      [6]Texas Instruments.TMS320DM355 DMSoC ARM subsystem reference guide.2007.

      [7]Samsung Group.K9F4G08U0A datasheet.2005.

      [8]Texas Instruments.Code composer studio development tools v3.3 getting started guide.2006.

      [9]DENXU-BOOT及Linux使用手冊.2005.

      猜你喜歡
      描述符低電平魔幻
      數(shù)字電路中“邏輯非”的用法辨析
      基于結(jié)構(gòu)信息的異源遙感圖像局部特征描述符研究
      鐵道車輛高/低電平信號智能發(fā)生器設(shè)計
      雍措“凹村”的魔幻與詩
      阿來研究(2020年1期)2020-10-28 08:10:54
      魔幻與死亡之海
      白煮蛋的魔幻變身
      2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車型低電平參考電壓總線電路圖
      Linux單線程并發(fā)服務(wù)器探索
      利用CNN的無人機遙感影像特征描述符學(xué)習(xí)
      “魔幻”的迷惘
      简阳市| 长治县| 恩平市| 龙里县| 洪洞县| 全州县| 康乐县| 甘肃省| 玉龙| 巨鹿县| 平和县| 长海县| 金山区| 宿州市| 河池市| 蒲城县| 子洲县| 平武县| 蕉岭县| 安庆市| 霍山县| 临安市| 白山市| 曲沃县| 英山县| 武宁县| 通州市| 延庆县| 丘北县| 长沙县| 新巴尔虎左旗| 昌平区| 武鸣县| 丹东市| 巨野县| 太仆寺旗| 宜兰县| 江永县| 博客| 上饶县| 马关县|