實驗二:DSP_BIOS同步對象實驗參考模板_第1頁
實驗二:DSP_BIOS同步對象實驗參考模板_第2頁
實驗二:DSP_BIOS同步對象實驗參考模板_第3頁
實驗二:DSP_BIOS同步對象實驗參考模板_第4頁
實驗二:DSP_BIOS同步對象實驗參考模板_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實驗2:CCS中DSP/BIOS操作實驗一、實驗項目與目的學習DSP/BIOS中線程task、旗語、郵箱的使用方法,同時進一步練習C語言編程及調試。二、實驗設備計算機,CC3.3版軟件三、實驗內容與步驟1配置CCS軟件 在桌面上打開,按照圖1所示配置。然后點擊“Save & Quit”按鈕后退出CCS設置工具,啟動CCS。圖1 CCS配置界面2建立帶有DSP/BIOS的項目文件(1)在桌面上有一個名為tsktest.c的文件,也就是我們實驗的源程序文件。(2)雙擊桌面上的圖標,啟動CCS。 (3)在Project菜單下點擊New,在出現的項目創建窗口中輸入項目文件名稱。名稱任意,例如“

2、tsktest”。如圖2所示:圖2 建立工程4)把源程序tsktest.c拷貝到當前工程的目錄下,然后再加入到工程中,如圖3所示:1 / 12圖3 把tsktest.c加入工程中5)在項目文件查看窗口中打開“+”號展開下面的文件,然后雙擊文件tsktest.c,在主窗口(右半窗口)顯示相應文件的源程序,出現圖4,此時可以瀏覽并檢查源程序。圖4 瀏覽源程序和工程3向工程中加入DSP/BIOS配置文件該工程是一個任務、郵箱、旗語的綜合測試例程,任務測試部分為3個函數taskA/taskB/taskC,其代碼一樣。為方便理解,故放在這3個函數中。void taskA(Arg id_arg) Int

3、id = ArgToInt (id_arg); Int i; LOG_printf(&trace, "Task %d Begin Working.",id); for (i = 0; i < NLOOPS ; i+) LOG_printf(&trace, "Loop Num = %d: Task ID = %d", i, id); TSK_yield(); LOG_printf(&trace, "Task %d DONE", id);這三個函數每個都是一個單獨的任務,所以需要在DSP/BIOS環境中運行,

4、下面新建并加入DSP/BIOS配置文件。1)向工程中加入DSP/BIOS系統,步驟為點擊菜單“File->New->DSP/BIOS configuration”,如圖5所示:圖5 新建DSP/BIOS配置文件出現圖6所示界面,選擇ti.platforms.sim64xx,然后點擊OK。圖6 選擇合適的芯片型號 圖7 保存tsktest.tcf2)點擊保存圖標,把文件保存為tsktest.tcf,圖7所示。3)用和加入tsktest.c程序同樣方法將tsktest.tcf加入工程,注意文件類型選擇*.tcf,否則找不到文件:圖8 把tsktest.tcf加入工程加入后的工程如圖9所

5、示,DSP/BIOS Config下面有了內容,也就是tsktest.tcf:圖9 加入DSP/BIOS后的工程4)修改HEAP的配置,在MEM上面右鍵,然后“Properties”(圖),彈出內存的屬性配置,如圖10和11所示:圖10修改MEM的屬性然后選中No Dynamic Memort Heaps后,確定即可。圖11 修改MEM屬性4靜態建立任務接下來對DSP/BIOS進行配置,加入三個線程task0/task1/task2,分別用來調用taskA/taskB/taskC三個函數。這三個函數功能是在日志中寫入運行狀態,用來演示線程是同時、并行運行的。在工程中雙擊tsktest.tcf文

6、件,打開BIOS配置界面。然后點開”scheduling”,新建一個任務(task),如圖12所示:圖12 建立任務然后按照同樣的方法分別建立task1、task2,最后如圖13所示。圖13 建立3個任務task0/task1/task2修改任務的屬性,在task0上點右鍵,然后選擇“屬性”,按照圖14所示填寫內容,它調用函數taskA,第一個參數0作為初始值傳入函數taskA中。這個值作為參數傳入線程函數中。圖14 設置task0的屬性再分別設置task1、task2的屬性,其調用的函數分別是taskB和taskC;傳入的參數分別是1和2。5靜態建立信號量建立信號量sem,如圖15所示:圖1

7、5 建立信號量sem5靜態建立郵箱1)在DSP/BIOS中建立了一個郵箱mbx(圖16所示),大小為24字節,長度是2,用來存放結構體數據。圖16 建立郵箱并設置2)再為郵箱建立任務線程,分別是讀線程taskMbx1和郵箱寫線程taskMbx2(圖17所示),用來讀寫郵箱,分別調用函數mbxReader和mbxWriter。圖17 郵箱測試線程3)在DSP/BIOS中建立了旗語sem,旗語測試采用線程triggerSem,調用函數tskSem,如圖18所示。圖18 建立旗語測試線程4)除此之外,為方便調試和跟蹤程序,在DSP/BIOS中建立了LOG對象trace,用來顯示消息,如圖19所示。圖

8、19 建立LOG對象trace到此就完成了對象的創建,開始編譯程序,點擊圖標進行編譯。此時會報錯,再把文件tsktestcfg.cmd加入工程后重新編譯即可。6運行程序,觀察結果(1)測試和觀察線程1)編譯程序,點擊圖標,編譯成功后,點擊File/Load Program,顯示圖20所示界面。圖20 載入程序2)點擊Debug菜單,選擇tsktest.out文件后點擊按鈕“打開”,加載程序。3)點擊菜單DSP/BIOS下的message log菜單(圖21)。圖21 message Log菜單彈出圖7所示界面,顯示出message log窗口圖22 message log窗口4)單擊工具條中的

9、按鈕或按F5鍵,或選擇DebugRun,開始運行程序。等待一會兒后,在message log中顯示圖8所示信息,表示了task0、task1、task2的執行情況。圖23 message Log信息該信息表明,task0/task1/task2先后啟動,同時運行。圖24 清除所有LOG消息5)在message Log窗口中點鼠標右鍵,在彈出窗口中選擇Clear , 清除所有消息。6)tsktest.c中,雙擊變量g_trigger,使之變成全選狀態,然后右鍵,在彈出的菜單中選擇Add Watch Window(圖25)。圖25 增加變量g_trigger進入觀察窗口顯示圖26所示界面。圖26 觀察g_trigger變量的值7)點擊Value 0,然后把0修改成1;再右鍵在彈出的菜單中點擊Refresh(圖27

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論