6

我有一個的TMS320C64x + DSP一個beagleboard。我正在開發圖像處理beagleboard應用程序。以下是它的工作原理:Beagleboard:我如何向/從DSP發送/接收數據?

  1. ARM從文件讀取圖像並將圖像放入二維數組中。
  2. 臂發送矩陣到DSP。 DSP接收矩陣。
  3. DSP執行對所接收的矩陣的圖像處理算法(該算法代碼使用約動態分配的存儲器的5MB)。
  4. 的DSP發送處理後的圖像(矩陣)到ARM。手臂接收矩陣。
  5. 臂經處理的圖像保存到文件中。

心中已經已經寫了步驟1,3,5的代碼。執行步驟3 + 4(發送數據)的最簡單方法是什麼?代碼示例是受歡迎的。

回答

3

最簡單的方法是使用共享存儲器:

使用CMEM內核模塊分配的存儲器塊上,可以從ARM和DSP訪問的ARM。然後使用DspBios NOTIFY組件將指針向下傳遞給DSP。

一旦DSP與處理您可以通過通知通知ARM來完成。

這樣就沒有必要將數據從ARM複製到DSP或反之亦然。所有你必須確定的是,數據來自CMEM組件。這可確保內存連續(DSP不知道ARM內存管理器)。

2

共享內存是正確的做法,但學習如何去做它可以是一個痛苦。 C6Run工具可以爲你抽象ARM/DSP通信,讓你更容易。雖然NOTIFY是真正適合使用的API,但C6Run使用的是使用舊版API的CMEM。

如果你想嘗試C6Run出的BeagleBoard的,最簡單的方法是通過跟隨instructions on the eLinux wiki for setting up C6Run for the ECE597 course given by Mark Yoder at Rose-Hulman。這些說明取決於運行Angstrom演示圖像(2)。 (3)也記錄了用於演示硬件功能的穩定版本。

(2):www.angstrom-distribution.org/demo/beagleboard (3):code.google.com/p/beagleboard/wiki/BeagleBoardDiagnosticsNext