ARM的多任務和系統時鐘
ARM的多任務和系統時鐘
一、實驗目的
學習系統時間相關API 函數和使用信號量解決uCOS-II 進程之間的同步問題,把系統時
間顯示在一個文本框中,并可以通過鍵盤設置修改。
二、實驗內容
本次實驗在用戶的Main_Task 任務中創建一個新任務,來實現系統時鐘的顯示和更新。
同時,通過在Main_Task 任務中響應鍵盤消息,可以對系統的時鐘進行更改。使用uCOS-II
多任務系統中的信號量保證多個任務同時對系統的一個資源訪問而不產生沖突。
三、預備知識
1、用ARM SDT 2.5 集成開發環境,編寫和調試程序的基本過程。
2、基于操作系統的應用程序的框架結構。
3、會使用Source Insight 3 編輯C 語言源程序
4、會使用消息循環響應鍵盤消息
5、會使用文本框控件
四、實驗設備及工具(包括軟件調試工具)
硬件:ARM 嵌入式開發板、用于ARM7TDMI 的JTAG 仿真器、PC 機Pentumn100 以
上
軟件:PC 機操作系統win98、ARM SDT 2.51 集成開發環境、仿真器驅動程序、Source
Insight 3.0、超級終端通訊程序、USB 下載程序、UltraEdit
五、實驗步驟
1、在ARM SDT 2.51 中,使用實驗一中創建好的模板,新建一個項目work1。把操作
系統的所需要的頭文件(*.h)和庫文件(*.alf)加入工程中。
2、用Source Insight 3 創建一個工程,把work1 中的C 語言源文件文件加入。
3、打開Main.c 文件,在Main_Task 任務中添加代碼,使系統啟動的時候,創建一個文
本框。啟動消息循環,使用戶的通過鍵盤可以編輯系統時間。
4、在Main_Task 任務中再創建一個新的任務,此任務負責更新顯示系統的時間。定義
一個信號量,保證系統多個任務訪問更新系統時鐘文本框的時候,不產生沖突。Main_Task
任務具體的程序流程圖如圖所示。
5、編輯時鐘更新任務的代碼。此任務具體的程序流程如圖所示。
提示:
⑴ 用CreateTextCtrl 函數創建文本框,SetTextCtrlText 函數設置文本框中的內容。
⑵ 使用OSTaskCreate 來創建系統任務。在uCOS-II 系統中,任務的優先級是不
能相同的。比如:Main_Task 任務的優先級是12,Key_Scan_Task 任務的優先級是56。
目前使用的uCOS-II 的版本只支持64 個任務,包括,還有8 個系統任務,用戶可以使
用的任務是56 個。創建任務的時候,需要選擇合適的任務優先級(比如:14)。
⑶ 通過SetTextCtrlEdit 函數設置文本框是否處于編輯狀態, 使用
TextCtrlDeleteChar 和AppendChar2TextCtrl 函數在文本框中刪除和追加字符。
⑷ 通過OSSemCreate 函數創建文本框控制的信號量。OSSemPend 函數等待并獲
得文本框控制的信號量;OSSemPost 釋放文本框控制的信號量。
⑸ 使用Rtc_IsTimeChange 函數,判斷系統的時鐘對應的某一位是否改變。用
Rtc_Format 格式化系統的時鐘格式得到Unicode 字符串,可以方便的顯示到文本框控件
里。
7、用ARM SDT 2.5 編譯、下載并調試上述程序,檢查運行結果
8、生成發行版本的.bin 文件,通過USB 下載到嵌入式開發板中,運行并檢查輸出結果。
評論