<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 達(dá)芬奇數(shù)字媒體片上系統(tǒng)的架構(gòu)和Linux啟動(dòng)過(guò)程

          達(dá)芬奇數(shù)字媒體片上系統(tǒng)的架構(gòu)和Linux啟動(dòng)過(guò)程

          作者: 時(shí)間:2015-01-29 來(lái)源:網(wǎng)絡(luò) 收藏

            ● DMSoC交換中心資源

          本文引用地址:http://www.ex-cimer.com/article/269184.htm

            以上大家看到DMSoC有非常豐富的外設(shè)和視頻處理硬件資源,而且ARM和DSP又共享DDR2等存儲(chǔ)器資源,那么DMSoC又是如何確保ARM、DSP和VPSS同時(shí)訪問(wèn)外設(shè)或存儲(chǔ)器資源時(shí)不會(huì)引起沖突呢?DMSoC中的交換中心資源(SCR:Switched Central Resource)會(huì)做出管理。如圖3所示,把任何一個(gè)發(fā)起數(shù)據(jù)傳輸?shù)脑捶Q為Master(每一個(gè)Master有一個(gè)專用的ID),這個(gè)Master要訪問(wèn)的目的地稱為Slave,這樣在Master和Slave之間就構(gòu)成一條數(shù)據(jù)傳輸?shù)耐?。從圖3中可以看到,在SCR中可以有很多并行的Master到Slave的數(shù)據(jù)通路。如果是不同的Master、相同的Slave,那么可以通過(guò)設(shè)置每一個(gè)Master的優(yōu)先級(jí)來(lái)得到特殊應(yīng)用系統(tǒng)的最佳性能。對(duì)于大多數(shù)的Master,可以通過(guò)寄存器MSTPRI0和MSTPRI1來(lái)設(shè)置它們的優(yōu)先級(jí)。如果Master是C64x+、VPSS和EDMA,可以通過(guò)它們自己的相關(guān)寄存器控制它們自己的優(yōu)先級(jí),這樣可以更加靈活、快速的實(shí)現(xiàn)高的視頻數(shù)據(jù)吞吐帶寬。詳細(xì)信息可以參考DM6446的數(shù)據(jù)手冊(cè)。



            圖3 DMSoC交換中心資源的結(jié)構(gòu)框圖

            電源域及復(fù)位

            DMSoC有兩個(gè)電源域,分別是Always On域和DSP域。Always On域由CVDD ARM核電源供電,給ARM、總線、SCR和除VICP之外的所有外設(shè)提供電源;DSP電源域由CVDDDSP DSP核電源供電,給DSP和VICP提供電源。

            雙核架構(gòu)的DMSoC的功耗也非常有競(jìng)爭(zhēng)力,這一方面取決于芯片本身的工藝,另一方面也取決于芯片內(nèi)部時(shí)鐘和電源的結(jié)構(gòu)。如圖4所示,DMSoC有電源休眠控制器(Power & Sleep Controller)管理芯片電源的開關(guān)及復(fù)位??梢杂密浖刂艱SP電源域,控制DSP及其模塊時(shí)鐘的開關(guān)和復(fù)位。PSC不支持ARM及其模塊的斷電控制、ARM的本地復(fù)位和ARM的時(shí)鐘關(guān)斷控制。同時(shí)PSC可以中斷ARM和DSP,支持IcePick仿真(emulation)特性。



            圖4 DM6446的電源休眠控制器

            關(guān)于達(dá)芬奇DMSoC的復(fù)位類型、觸發(fā)源及對(duì)應(yīng)的復(fù)位對(duì)象請(qǐng)參考表2。



            達(dá)芬奇DMSoC初始化流程

            ● 達(dá)芬奇DMSoC復(fù)位狀態(tài)

            DM644x上電復(fù)位后,芯片的絕大部分模塊都處于不工作狀態(tài)。鎖相環(huán)PLL處于旁路(Bypass)模式;DSP子系統(tǒng)的狀態(tài)取決于DSP_BT引腳;UART1和UART2也處于不工作狀態(tài),UART0的狀態(tài)取決于BTSEL引腳(如果BTSEL=11,UART0工作);EMIFA處于工作狀態(tài),其數(shù)據(jù)總線寬度由EM_WIDTH決定,地址總線寬度由AEAW決定;芯片的大部分引腳都被配置為GPIO引腳。引腳復(fù)用通過(guò)寄存器PINMUX0和PINMUX1控制。

            ● 達(dá)芬奇DMSoC初始化順序

            (1)DMSoC復(fù)位。芯片的配置由PSC決定,取決于BTSEL[0-3]、EM_WIDTH、AEWA和DSP_BT的狀態(tài)。

            (2)ROM boot loader(如果被選)。NAND或者UART0的初始化。

            (3)引導(dǎo)加載(Boot-loading)。以U-boot為例,①使能電源域:DDR2和DSP;②設(shè)置時(shí)鐘頻率(ARM、DSP和DDR2時(shí)鐘的乘除系數(shù));③設(shè)置引腳復(fù)用控制器;④設(shè)置ARM引導(dǎo)啟動(dòng)操作系統(tǒng)。

            (4)操作系統(tǒng)啟動(dòng)。以為例,①初始化ARM;②初始化硬件系統(tǒng);③初始化環(huán)境。

            ● U-boot初始化順序

            通常情況下,ARM 要求boot loader中有少許的初始化。目前TI的DVEVM使用的是U-boot-1.1.3。U-boot代碼中首先運(yùn)行的是u-boot/cpu/arm926ejs/start.S,芯片和一些DVEVM板的硬件配置主要在u-boot/board/davinci/platform.S和davinci.c中完成。其中u-boot/board/davinci/platform.S設(shè)置最基本的系統(tǒng)硬件環(huán)境,包括系統(tǒng)PLL及DDR2的初始化、PSC的配置及使能UART0、AEMIF等硬件模塊。有些工程師設(shè)計(jì)的達(dá)芬奇板可能用到了和DVEVM不同的Flash,那么就要根據(jù)用到的Flash參數(shù)修改u-boot/board/davinci/flash.c。另外,關(guān)于DM644x支持的NAND Flash ID,請(qǐng)參考TMS320DM644x DMSoC的相關(guān)文檔。

            以NOR Flash boot為例,DVEVM u-boot初始化下列的達(dá)芬奇DMSoC內(nèi)容:

            (1)關(guān)中斷和MMU。

            (2)使能DSP電源域(PTCMD),把DSP置為復(fù)位狀態(tài)。

            (3)初始化PLL,使能DDR2,軟復(fù)位DDR2并且重新使能DDR2,使其脫離復(fù)位狀態(tài)。

            (4)初始化系統(tǒng)PLL。

            (5)配置AEMIF引腳為NOR Flash接口。

            (6)VTP校準(zhǔn)。

            完成以上步驟之后,U-boot準(zhǔn)備引導(dǎo)ARM Linux。

            (1)配置系統(tǒng)的內(nèi)存(通過(guò)ATAG_ MEM塊和mem=)NAND Flash和DDR2。

            (2)通過(guò)TFTP加載等加載方式,加載內(nèi)核到指定的存儲(chǔ)地址。

            (3)如果定義過(guò),加載RAM Disk。

            (4)初始化傳遞到內(nèi)核的引導(dǎo)參數(shù)(EMAC地址,串口,控制臺(tái),視頻格式等)

            (5)獲得ARM Linux機(jī)類型值(DVEVM為#901)。

            (6)設(shè)置kernel tagged list。

            (7)用初始值設(shè)置ARM的寄存器。

            (8)調(diào)用內(nèi)核。

            ● Linux 初始化步驟

            (1)Linux內(nèi)核需要從引導(dǎo)加載程序(U-boot)中得到以下參數(shù)。

            * 已經(jīng)初始化的memory系統(tǒng)。

            * R0=0;R1為ARM Linux機(jī)類型值。

            * R2指向ATAG結(jié)構(gòu)體的內(nèi)容:①物理memory區(qū);②是否使用RAM DISK及其壓縮版的地址;③視頻驅(qū)動(dòng)程序具體的初始化參數(shù);④內(nèi)核命令行;⑤其他參數(shù)(串口和版本號(hào))。

            更多關(guān)于Linux內(nèi)核引導(dǎo)參數(shù)的信息可以參考Linux/Documentation/kernel-parameters.txt。如果要想傳遞給內(nèi)核更多的參數(shù),再u-boot中的bootargs中設(shè)置就可以了。

            (2)對(duì)于壓縮的內(nèi)核(aka uImage),Linux 最初啟動(dòng)Linux/arch/kernel/head.s。

            (3)start_kernel()運(yùn)行。位于Linux/init/main.c。

            (4)Linux的第一個(gè)進(jìn)程init()運(yùn)行。

            總結(jié)

            經(jīng)過(guò)上面介紹,很多DSP工程師可能會(huì)對(duì)達(dá)芬奇DMSoC及Linux啟動(dòng)流程有一個(gè)感性的認(rèn)識(shí),雙核架構(gòu)的達(dá)芬奇DMSoC帶給我們的是一加一大于二的性價(jià)比,要想了解更多的細(xì)節(jié),請(qǐng)參考數(shù)據(jù)手冊(cè)和應(yīng)用文檔。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          linux相關(guān)文章:linux教程


          存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理


          數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理

          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: 達(dá)芬奇 Linux

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();