新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ARM的多任務(wù)和系統(tǒng)時鐘

        ARM的多任務(wù)和系統(tǒng)時鐘

        作者: 時間:2011-11-08 來源:網(wǎng)絡(luò) 收藏

        ARM的多任務(wù)和系統(tǒng)時鐘
        一、實驗?zāi)康?BR>學(xué)習(xí)系統(tǒng)時間相關(guān)API 函數(shù)和使用信號量解決uCOS-II 進(jìn)程之間的同步問題,把系統(tǒng)時
        間顯示在一個文本框中,并可以通過鍵盤設(shè)置修改。
        二、實驗內(nèi)容
        本次實驗在用戶的Main_Task 任務(wù)中創(chuàng)建一個新任務(wù),來實現(xiàn)系統(tǒng)時鐘的顯示和更新。
        同時,通過在Main_Task 任務(wù)中響應(yīng)鍵盤消息,可以對系統(tǒng)的時鐘進(jìn)行更改。使用uCOS-II
        多任務(wù)系統(tǒng)中的信號量保證多個任務(wù)同時對系統(tǒng)的一個資源訪問而不產(chǎn)生沖突。
        三、預(yù)備知識
        1、用ARM SDT 2.5 集成開發(fā)環(huán)境,編寫和調(diào)試程序的基本過程。
        2、基于操作系統(tǒng)的應(yīng)用程序的框架結(jié)構(gòu)。
        3、會使用Source Insight 3 編輯C 語言源程序
        4、會使用消息循環(huán)響應(yīng)鍵盤消息
        5、會使用文本框控件
        四、實驗設(shè)備及工具(包括軟件調(diào)試工具)
        硬件:ARM 嵌入式開發(fā)板、用于ARM7TDMI 的JTAG 仿真器、PC 機(jī)Pentumn100 以

        軟件:PC 機(jī)操作系統(tǒng)win98、ARM SDT 2.51 集成開發(fā)環(huán)境、仿真器驅(qū)動程序、Source
        Insight 3.0、超級終端通訊程序、USB 下載程序、UltraEdit
        五、實驗步驟
        1、在ARM SDT 2.51 中,使用實驗一中創(chuàng)建好的模板,新建一個項目work1。把操作
        系統(tǒng)的所需要的頭文件(*.h)和庫文件(*.alf)加入工程中。
        2、用Source Insight 3 創(chuàng)建一個工程,把work1 中的C 語言源文件文件加入。
        3、打開Main.c 文件,在Main_Task 任務(wù)中添加代碼,使系統(tǒng)啟動的時候,創(chuàng)建一個文
        本框。啟動消息循環(huán),使用戶的通過鍵盤可以編輯系統(tǒng)時間。
        4、在Main_Task 任務(wù)中再創(chuàng)建一個新的任務(wù),此任務(wù)負(fù)責(zé)更新顯示系統(tǒng)的時間。定義
        一個信號量,保證系統(tǒng)多個任務(wù)訪問更新系統(tǒng)時鐘文本框的時候,不產(chǎn)生沖突。Main_Task
        任務(wù)具體的程序流程圖如圖所示。

        5、編輯時鐘更新任務(wù)的代碼。此任務(wù)具體的程序流程如圖所示。

        提示:
        ⑴ 用CreateTextCtrl 函數(shù)創(chuàng)建文本框,SetTextCtrlText 函數(shù)設(shè)置文本框中的內(nèi)容。
        ⑵ 使用OSTaskCreate 來創(chuàng)建系統(tǒng)任務(wù)。在uCOS-II 系統(tǒng)中,任務(wù)的優(yōu)先級是不
        能相同的。比如:Main_Task 任務(wù)的優(yōu)先級是12,Key_Scan_Task 任務(wù)的優(yōu)先級是56。
        目前使用的uCOS-II 的版本只支持64 個任務(wù),包括,還有8 個系統(tǒng)任務(wù),用戶可以使
        用的任務(wù)是56 個。創(chuàng)建任務(wù)的時候,需要選擇合適的任務(wù)優(yōu)先級(比如:14)。
        ⑶ 通過SetTextCtrlEdit 函數(shù)設(shè)置文本框是否處于編輯狀態(tài), 使用
        TextCtrlDeleteChar 和AppendChar2TextCtrl 函數(shù)在文本框中刪除和追加字符。
        ⑷ 通過OSSemCreate 函數(shù)創(chuàng)建文本框控制的信號量。OSSemPend 函數(shù)等待并獲
        得文本框控制的信號量;OSSemPost 釋放文本框控制的信號量。
        ⑸ 使用Rtc_IsTimeChange 函數(shù),判斷系統(tǒng)的時鐘對應(yīng)的某一位是否改變。用
        Rtc_Format 格式化系統(tǒng)的時鐘格式得到Unicode 字符串,可以方便的顯示到文本框控件
        里。
        7、用ARM SDT 2.5 編譯、下載并調(diào)試上述程序,檢查運行結(jié)果
        8、生成發(fā)行版本的.bin 文件,通過USB 下載到嵌入式開發(fā)板中,運行并檢查輸出結(jié)果。



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 金坛市| 筠连县| 榆社县| 湖口县| 邻水| 调兵山市| 东方市| 奈曼旗| 涡阳县| 博罗县| 哈巴河县| 娄烦县| 洪泽县| 滨海县| 老河口市| 南澳县| 宣恩县| 滕州市| 洪泽县| 平安县| 申扎县| 双桥区| 东平县| 闽侯县| 晋州市| 铜川市| 涟源市| 喀喇沁旗| 曲靖市| 霞浦县| 宝鸡市| 铜鼓县| 时尚| 钟山县| 和田市| 磐石市| 惠安县| 卢氏县| 德格县| 申扎县| 甘肃省|