最近在做dsp雙核通訊,很讓人頭疼,看了很多ipc示例,發現是阻塞通訊,而openmp雖然可以做並行系統,但是題目要求是兩個核做互不想幹的內容、偶爾進行一下通訊傳遞一下資料就可以了。所以在經過大量調研以後,決定採用多映象ipc通訊。
採用的方法就是利用共享記憶體,採用的系統是sys/bios系統。
首先在cmd檔案中定義共享記憶體的大小:
/* 記憶體段描述 */
memory
ddr3的大小是512m,這裡分成三塊,256m的共享記憶體,以及各128m的單核使用的記憶體。記憶體的大小可根據實際情況自定義。
1.簡單的int型別的整數
對於簡單的整數,只需要在.c檔案中進行定義:
// 共享變數定義
extern
volatile
unsigned
int far flag;
然後在cmd檔案中,為該變數進行記憶體分配:
.ipc > 0x80000004 start(flag)
在tsk中,可以直接呼叫flag,並為其賦值:
flag=1;
當然,為了把數值寫入記憶體而不是放在cache快取中,需要把快取寫入記憶體中:
cache_wb((void *)&flag, 4, cache_type_alld, true);
2.對於char型陣列
char型陣列實際上與int型整數類似,只不過分配記憶體的時候不能用ipc定義。
在.c檔案的定義:
unsigned
char confirm_img[100000];
在cmd檔案中的定義:
.ipc > 0x86000004 start(confirm_img)
寫入資料的時候,我們可
memcpy(detect_img, image, sizeof(image)* sizeof(int));
寫入記憶體。
3.結構體
結構體比較麻煩,之前寫了好幾次沒有成功,後來發現是快取沒有寫入記憶體。
結構體在.c檔案中的定義:
result_point_info result;
在cmd檔案中:
.ipc > 0x82000004 start(result)
每次賦值,寫入後,要用
result.x=1;
cache_wb((void *)&result.x, 4, cache_type_alld, true);
方式進行寫入記憶體。
並非採用什麼通訊機制,就是把需要共享的資料放到共享記憶體中,另乙個核需要的時候,再去指定的位置讀取資料就可以了~~
ASAAC多核DSP處理板卡
asaac多核dsp處理板卡 泛騰科技高效能多核dsp asaac 處理板卡由4顆 tms320c6678處理器組成,主頻1.0ghz,2gb ddr3記憶體,該計算機板卡處理能 力強 傳輸頻寬高 擴充套件豐富,廣泛用於dsp效能驗證,訊號 平台,影象處理分析,網路資料收發等。產品特點 4顆 tms...
(多核DSP快速入門)0 前言 CCS的安裝
ccs是dsp的開發平台,也可以有用於dsp arm的片上嵌入式平台和達文西平台的軟體開發,裡面提供了兩種 模式,可以用連線硬體 或直接通過軟體 本教程主要是軟體 所以沒有任何硬體也可以測試自己的程式。這裡ccs比較經典的版本是3.3,很多同學可能用過這個,當然沒用於過也沒關係 我也沒用過,而且5....
DSP學習之排序器操作
同步取樣模式下,控制暫存器convxx的最高位不起作用,每個取樣保持緩衝器對convxx的低三位確定的引腳進行取樣,即,假如adcregs.adcchselseq1.bit.conv00 0x1,則adcina1由取樣保持器a取樣,adcinb1由取樣保持器b取樣,取樣可以同步進行,但是轉換不能同時...