日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]達(dá)芬奇(DaVinci)數(shù)字媒體技術(shù)平臺(tái)TMS320DM6446/3采用了ARM+DSP雙核的架構(gòu),本文從芯片的硬件結(jié)構(gòu)入手介紹達(dá)芬奇DMSoC硬件部分及Linux OS的啟動(dòng)過程。達(dá)芬奇DMSoC硬件概述如圖1所示,達(dá)芬奇數(shù)字媒體片上系統(tǒng)(DMSoC

達(dá)芬奇(DaVinci)數(shù)字媒體技術(shù)平臺(tái)TMS320DM6446/3采用了ARM+DSP雙核的架構(gòu),本文從芯片的硬件結(jié)構(gòu)入手介紹達(dá)芬奇DMSoC硬件部分及Linux OS的啟動(dòng)過程

達(dá)芬奇DMSoC硬件概述

如圖1所示,達(dá)芬奇數(shù)字媒體片上系統(tǒng)(DMSoC)提供:兩個(gè)內(nèi)核(ARM+DSP);視頻處理子系統(tǒng)(VPSS);多種Boot模式(NOR Flash/NAND Flash/UART0 Boot Mode);兩個(gè)電源域;多個(gè)時(shí)鐘樹;多個(gè)引腳獨(dú)立或復(fù)用的外設(shè)。


圖1 DM6446功能結(jié)構(gòu)框圖。

> ARM-DSP集成

對(duì)于雙核的達(dá)芬奇架構(gòu),大家最關(guān)心的就是兩個(gè)核之間的資源分配、通信方式及如何高效地實(shí)現(xiàn)資源共享各盡其能。ARM獨(dú)享(DSP不可用)的外設(shè)有: UART0/1/2,I2C,看門狗定時(shí)器,PWM0/1/2,ARM中斷控制器,USB2.0,ATA/CF,SPI,GPIO,VPSS, EMAC/MDIO,EMIFA CONTROL,VLYNQ,MMC/SD。DSP獨(dú)享(ARM不可用)的外設(shè)有:DSP中斷控制器,VICP。ARM和DSP共享的外設(shè)有:EDMA, Timer0/1,Power & Sleep Controller,ASP和EMIFA Data。


圖2 ARM-DSP集成結(jié)構(gòu)。

如圖2所示,可以很清楚地看到ARM可以訪問DSP片內(nèi)存儲(chǔ)器(L2RAM和L1P/D);DSP可以訪問ARM片內(nèi)存儲(chǔ)器;ARM和DSP共享 DDR2和 AEMIF。因此,通常情況下ARM只需傳遞需要處理的數(shù)據(jù)地址指針給DSP,而無須大塊的數(shù)據(jù)搬移。ARM和DSP之間的通信可以通過相互中斷實(shí)現(xiàn)。 ARM可以中斷DSP(通過4個(gè)通用中斷和1個(gè)不可屏蔽中斷);DSP可以通過2個(gè)通用中斷來中斷ARM。ARM控制DSP的電源、時(shí)鐘、復(fù)位和引導(dǎo)。

> DMSoC存儲(chǔ)器映射

達(dá)芬奇DMSoC多個(gè)片上存儲(chǔ)器和兩個(gè)處理器及不同的子系統(tǒng)相關(guān)。為了簡(jiǎn)化軟件開發(fā),DMSoC中所有的存儲(chǔ)器統(tǒng)一編址,如表1所示。


表1 DMSoC存儲(chǔ)器的映射地址。

[!--empirenews.page--]

DMSoC交換中心資源

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


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

電源域及復(fù)位

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

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


圖4 DM6446的電源休眠控制器。

[!--empirenews.page--]

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


表2 DMSoC的復(fù)位類型。

達(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ù)用通過寄存器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)。以Linux為例,①初始化ARM;②初始化硬件系統(tǒng);③初始化Linux環(huán)境。

> U-boot初始化順序

通常情況下,ARM Linux要求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)。

[!--empirenews.page--]

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

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

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

(3)如果定義過,加載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)過上面介紹,很多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)用文檔。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

CPU親和度通過限制進(jìn)程或線程可以運(yùn)行的CPU核心集合,使得它們只能在指定的CPU核心上執(zhí)行。這可以減少CPU緩存的失效次數(shù),提高緩存命中率,從而提升系統(tǒng)性能。

關(guān)鍵字: Linux 嵌入式

在Linux系統(tǒng)性能優(yōu)化中,內(nèi)存管理與網(wǎng)絡(luò)連接處理是兩大核心領(lǐng)域。vm.swappiness與net.core.somaxconn作為關(guān)鍵內(nèi)核參數(shù),直接影響系統(tǒng)在高負(fù)載場(chǎng)景下的穩(wěn)定性與響應(yīng)速度。本文通過實(shí)戰(zhàn)案例解析這兩個(gè)...

關(guān)鍵字: Linux 內(nèi)存管理

對(duì)于LLM,我使用b谷歌Gemini的免費(fèi)層,所以唯一的成本是n8n托管。在使用了n8n Cloud的免費(fèi)積分后,我決定將其托管在Railway上(5美元/月)。然而,由于n8n是開源的,您可以在自己的服務(wù)器上托管它,而...

關(guān)鍵字: 人工智能 n8n Linux

在Linux系統(tǒng)管理中,權(quán)限控制是安全運(yùn)維的核心。本文通過解析/etc/sudoers文件配置與組策略的深度應(yīng)用,結(jié)合某金融企業(yè)生產(chǎn)環(huán)境案例(成功攔截98.7%的非法提權(quán)嘗試),揭示精細(xì)化權(quán)限管理的關(guān)鍵技術(shù)點(diǎn),包括命令別...

關(guān)鍵字: Linux 用戶權(quán)限 sudoers文件

Linux內(nèi)核中的信號(hào)量(Semaphore)是一種用于資源管理的同步原語,它允許多個(gè)進(jìn)程或線程對(duì)共享資源進(jìn)行訪問控制。信號(hào)量的主要作用是限制對(duì)共享資源的并發(fā)訪問數(shù)量,從而防止系統(tǒng)過載和數(shù)據(jù)不一致的問題。

關(guān)鍵字: Linux 嵌入式

在云計(jì)算與容器化技術(shù)蓬勃發(fā)展的今天,Linux網(wǎng)絡(luò)命名空間(Network Namespace)已成為構(gòu)建輕量級(jí)虛擬網(wǎng)絡(luò)的核心組件。某頭部互聯(lián)網(wǎng)企業(yè)通過命名空間技術(shù)將測(cè)試環(huán)境資源消耗降低75%,故障隔離效率提升90%。本...

關(guān)鍵字: Linux 云計(jì)算

在Linux內(nèi)核4.18+和主流發(fā)行版(RHEL 8/Ubuntu 20.04+)全面轉(zhuǎn)向nftables的背景下,某電商平臺(tái)通過遷移將防火墻規(guī)則處理效率提升40%,延遲降低65%。本文基于真實(shí)生產(chǎn)環(huán)境案例,詳解從ipt...

關(guān)鍵字: nftables Linux

在Linux設(shè)備驅(qū)動(dòng)開發(fā)中,等待隊(duì)列(Wait Queue)是實(shí)現(xiàn)進(jìn)程睡眠與喚醒的核心機(jī)制,它允許進(jìn)程在資源不可用時(shí)主動(dòng)放棄CPU,進(jìn)入可中斷睡眠狀態(tài),待資源就緒后再被喚醒。本文通過C語言模型解析等待隊(duì)列的實(shí)現(xiàn)原理,結(jié)合...

關(guān)鍵字: 驅(qū)動(dòng)開發(fā) C語言 Linux

在Unix/Linux進(jìn)程間通信中,管道(pipe)因其簡(jiǎn)單高效被廣泛使用,但默認(rèn)的半雙工特性和無同步機(jī)制容易導(dǎo)致數(shù)據(jù)競(jìng)爭(zhēng)。本文通過父子進(jìn)程雙向通信案例,深入分析互斥鎖與狀態(tài)機(jī)在管道同步中的應(yīng)用,實(shí)現(xiàn)100%可靠的數(shù)據(jù)傳...

關(guān)鍵字: 管道通信 父子進(jìn)程 Linux

RTOS :RTOS的核心優(yōu)勢(shì)在于其實(shí)時(shí)性。它采用搶占式調(diào)度策略,確保高優(yōu)先級(jí)任務(wù)能夠立即獲得CPU資源,從而在最短時(shí)間內(nèi)完成處理。RTOS的實(shí)時(shí)性是通過嚴(yán)格的時(shí)間管理和任務(wù)調(diào)度算法實(shí)現(xiàn)的,能夠滿足對(duì)時(shí)間敏感性要求極高的...

關(guān)鍵字: Linux RTOS
關(guān)閉