新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > OMAPL138雙核系統(tǒng)的調(diào)試方案設(shè)計

OMAPL138雙核系統(tǒng)的調(diào)試方案設(shè)計

作者: 時間:2012-05-08 來源:網(wǎng)絡(luò) 收藏

摘要:高性能、低功耗處理器為手持式移動設(shè)備提供強(qiáng)有力的支持。對通信模塊DSPLink的軟件架構(gòu)和在Linux嵌入式操作下的編譯加載進(jìn)行了分析和介紹,以消息隊列組件為例分析了ARM和DSP通信時通道的建立和連接的方式。通過DSP/BIOS和Linux端DSPLink的MSGQ接口和多線程技術(shù),建立ARM和DSP消息傳遞通道,提供了在雙核開發(fā)中對DSP端暗箱的解決方法。
關(guān)鍵詞:;雙核處理器;DSPLink;消息隊列;

1 雙核困難
雙核芯片的推出為兼顧強(qiáng)大的數(shù)據(jù)處理能力和良好的用戶體驗提供了解決方案,將雙CPU集成在一個芯片上也簡化了硬件電路設(shè)計的難度。但是,雙核開發(fā)增加了軟件設(shè)計的難度。以往的ARM工程師與DSP算法工程師的明確分工已經(jīng)不能適用于雙核芯片的開發(fā),需要在雙核芯片的同步運(yùn)行上提供一些解決方案。開發(fā)工程師在進(jìn)行雙核開發(fā)中會遇到調(diào)試方面的困難,以往的CCS和仿真器的調(diào)試方式已經(jīng)不適用于雙核環(huán)境下對DSP程序的調(diào)試。DSP端的程序運(yùn)行,無法直觀地提供調(diào)試信息給開發(fā)者,相當(dāng)于一個“黑匣子”,以至于開發(fā)者無法獲取DSP端寄存器和變量的變化情況。本文通過推出基于DSPLink軟件模塊的消息隊列組件,使DSP調(diào)試信息通過ARM端應(yīng)用程序打印。

2 雙核通信理論
TI公司推出的OMAP體系結(jié)構(gòu)與其推出的達(dá)芬奇結(jié)構(gòu)有相似之處,OMAP體系開發(fā)套件與達(dá)芬奇套件有很大的相似性,而達(dá)芬奇處理器最具革命性的意義在于它的全平臺開放。TI提供了全套開發(fā)套件,給工程師們在開發(fā)上提供了便利性和規(guī)范。開發(fā)套件中,基于雙核通信的底層為DSPLink模塊,為核心模塊。
2.1 DSPLink雙核通信構(gòu)架
在OMAP體系中,芯片設(shè)計時,在片內(nèi)分配一塊RAM內(nèi)存區(qū)域,是ARM和DSP都可以直接使用的共享內(nèi)存區(qū)域。在小數(shù)據(jù)量的簡單的控制信息通信時,可以直接使用片內(nèi)的共享內(nèi)存,通信速率也是最快的。同時還有將共享內(nèi)存分配在片外的DDR,以便進(jìn)行大數(shù)據(jù)量的傳輸。
DSPLink為TI針對雙核通信的底層模塊,在ARM端和DSP端具有相似的作用,在ARM端Linux嵌入式操作中作為Linux的內(nèi)核模塊存在,扮演著設(shè)備驅(qū)動的角色,通過驅(qū)動提供的眾多上層API接口直接操作共享內(nèi)存。在DSP端其連接的是TI推出的主要用于DSP的一款實時操作DSP/BIOS,同樣作為驅(qū)動存在。采用DSPLink軟件方法將物理層抽象出來,為硬件提供了十分優(yōu)秀的擬合,使ARM和DSP在通信上實現(xiàn)無縫的鏈接。
DSPLink的軟件構(gòu)架如圖1所示。

本文引用地址:http://www.butianyuan.cn/article/149121.htm

a.jpg


(1)在GPP端
GPP OS:在GPP端多采用操作系統(tǒng),比較常用的是嵌入式操作系統(tǒng)Linux和WinCE,TI的DVSDK中有相關(guān)的支持。
OS抽象層:OS抽象層包含了DSPLink需要的一些通用的OS服務(wù)部件,通過此層使DSPLink可以不依賴特定的操作系統(tǒng),從而可以利用接口特性更多地針對不同的操作系統(tǒng)使用,使開發(fā)者方便地移植到不同操作系統(tǒng)中。
Link Driver:GPP端的驅(qū)動層,該層提供了共享內(nèi)存的GPP端的驅(qū)動。
Processor Manager:該層維護(hù)一個針對所有模塊的Book-Keeping信息,通過API給用戶提供通過Link Driver的控制操作。
DSP/BIOS Link:通過API可以脫離對底層的了解,直接操作共享內(nèi)存,以實現(xiàn)通信。
(2)在DSP端
DSP Link Driver:Link Driver是DSP/BIOS中驅(qū)動的一部分,該部分驅(qū)動只負(fù)責(zé)基于物理連接之上與GPP之間的交互。
DSP/BIOS:DSP端的實時操作系統(tǒng)。
2.2 MSGQ通信搭建方法
雙核通信的基本模式即是一方將所需要傳輸?shù)臄?shù)據(jù)放到共享內(nèi)存中,通過中斷的方式告知另一方。作為DSPLink中不同的通信模塊,存在的不同只是對共享內(nèi)存的組織方式不同。下面以MSGQ傳輸方式為例分析建立雙核通信構(gòu)架。
MSGQ表述消息隊列方式,主要針對ARM和DSP端可變長度的短消息的交互,是基于DSP/BIOS的MSGQ模塊實現(xiàn)的。消息的發(fā)送/接收都要以隊列的方式進(jìn)行。消息的發(fā)送者將消息發(fā)送入隊列中,隨后接收者從隊列中將消息取出。每個消息隊列只能有一個接收者,但是可以同時有多個發(fā)送者。在一個任務(wù)中,可以進(jìn)行多個消息隊列的讀寫。使用MSGQ進(jìn)行數(shù)據(jù)傳輸還需要用到另外兩個組件:
①PROC,在GPP應(yīng)用中模擬DSP角色,控制DSP程序的載入、運(yùn)行、停止。
②POOL,用于分配存儲器緩沖區(qū),將內(nèi)存合理分塊,使分配所需內(nèi)存適合傳輸數(shù)據(jù)的尺寸。
利用這兩個組件,將完成DSP程序的載入啟動和內(nèi)存池的分配。
MSGQ通信流程如圖2所示。

b.jpg

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



上一頁 1 2 3 4 下一頁

評論


相關(guān)推薦

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

關(guān)閉