• 沒有找到結果。

第三章 軟硬體平台簡介

3.2 軟體環境

3.2.4 DSP Gateway

如前面 OMAP 處理器簡介中所提,OMAP 處理器包含 ARM925T 處理器與 TMS320C55x 數位訊號處理器。DSP Gateway 則是讓載 ARM 處理器上執行的 Linux 作業系統可以與 DSP 通訊的一套軟體。

DSP Gateway 包含兩部份,ARM 上所執行的 Linux 裝置驅動程式與 DSP 上的函 式庫,靠著這兩著合作達到通訊的功能。Linux 裝置驅動程式提供介面讓 ARM 上的程

式可以 read()與 write()系統呼叫使用 DSP。DSP 的函式庫提供函式讓 DSP task 可以 被 ARM 透過驅動程式使用。

DSP Gateway 中 ARM 與 DSP 處理器之間的通訊是靠著 OMAP1510 中 mailbox 的 機制鎖完成,OMAP1510 中有三組 Mailbox 暫存器,一組是給 ARM 用,當 ARM 寫 資料進 Mailbox 時,會送出中斷(INT5)給 DSP;其他兩組當 DSP 把資料寫進時,會送 出中斷(IRQ10/11)給 ARM。在 DSP Gateway 中只使用一組 DSP 用的 Mailbox。每一組 Mailbox 是包含兩個 16-bit 的暫存器與一個 1-bit 的旗標暫存器。當中斷發生時,中斷 的處理器會用兩個 16-bit 的暫存器各別將命令與資料傳到被中斷的處理器。

圖 三-4 DSP Gateway Mailbox

圖 三-5 DSP gateway

DSP Gateway支援五種裝置驅動程式 - DSP task devices, DSP task watch

device,DSP control device,DSP watchdog device與DSP exmem device,上圖(圖 3-5)所 表示的是這些裝置與應用程式之間的關係。 以下簡介這五種裝置驅動程式的用途。

¾ DSP Task device

DSP Task device提供Linux應用程式使用DSP task的介面,它會再/dev/dsptask下自動 產生device file。讀寫這些裝置意味著DSP task將會接收到資料或是傳送資料到Linux 應用程式。

DSP task分為ststic task與on-demand task。Static task與DSP Gateway的DSP函式庫做 靜態鏈結,而on-demand task則不與DSP函式庫作靜態鏈結,它在載入DSP時才會和 函式庫鏈結。

¾ DSP control device

DSP control device提供DSP控制介面給Linux使用,Linux可以控制DSP重置、讀取 DSP設定、爲on-demand task產生可以在DSP中執行的task、映射與取消映射SDRAM 到DSP記憶體空間與其他功能。

¾ DSP exmem device

DSP exmem device提供Linux可以存取DSP外部記憶體的介面。他在Linux上的裝置 名稱為/dev/dspexmem。所以透過這個裝置可以讓Linux應用程式去存取由

OMAPDSP_IOCTL_EXMAP命令所映射到DSP記憶體空間的SDRAM。

圖 三-6 DSP Memroy Space

如上圖(圖 3-6)所示,在映射 SDRAM 到 DSP 記憶體空間時必須映射到 0x028000 與 0xFF9000 的範圍內,且上圖的位址是使用 word Address,所以在使用 ARM 上 的 Linux 應用程式映射時,必須改為 byte address。

¾ DSP Task Watch device

DSP Task Watch device提供on-demand task要載入時的一些必要資訊,且提供哪些 DSP task沒在使用,哪些正在載入中,還有哪些已經執行的資訊。

¾ DSP watchdog device

DSP watchdog device是用來偵測DSP watchdog timer是否逾時的裝置,它只提供read() 系統呼叫,一般的情況下使用read()時,是不會返回的。若是read()呼叫返回,那是 代表DSP進入不可預期的狀態。

相關文件