新聞中心

        ARM的綜合實(shí)驗(yàn)

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


        一、實(shí)驗(yàn)?zāi)康?BR>學(xué)習(xí)做一個(gè)復(fù)雜的應(yīng)用程序的方法和程序結(jié)構(gòu),結(jié)合應(yīng)用以前16 次實(shí)驗(yàn)所學(xué)到的知識(shí),
        編寫一個(gè)比較綜合的應(yīng)用。
        二、實(shí)驗(yàn)內(nèi)容
        用一個(gè)列表框作為主菜單,通過(guò)鍵盤可以選擇功能,主要的功能有:顯示bmp 文件、
        設(shè)定系統(tǒng)時(shí)間、USB 下載。同時(shí),使用文本框控件作為系統(tǒng)的一個(gè)狀態(tài)條,顯示提示信息
        和系統(tǒng)的時(shí)間。
        三、預(yù)備知識(shí)
        1、用 SDT 2.5 集成開(kāi)發(fā)環(huán)境,編寫和調(diào)試程序的基本過(guò)程。
        2、基于操作系統(tǒng)的應(yīng)用程序的框架結(jié)構(gòu)。
        3、會(huì)使用Source Insight 3 編輯C 語(yǔ)言源程序
        4、會(huì)使用消息循環(huán)響應(yīng)鍵盤消息
        5、會(huì)使用文本框控件和列表框控件
        6、會(huì)編寫通過(guò)USB 連接下載的程序
        7、會(huì)控制系統(tǒng)的時(shí)鐘和多線程
        8、會(huì)使用系統(tǒng)的繪圖函數(shù)顯示圖片
        9、會(huì)使用系統(tǒng)的文件相關(guān)函數(shù)列出指定類型的文件
        四、實(shí)驗(yàn)設(shè)備及工具(包括軟件調(diào)試工具)
        硬件: 嵌入式開(kāi)發(fā)板、用于ARM7TDMI 的JTAG 仿真器、PC 機(jī)Pentumn100 以

        軟件:PC 機(jī)操作系統(tǒng)win98、ARM SDT 2.51 集成開(kāi)發(fā)環(huán)境、仿真器驅(qū)動(dòng)程序、Source
        Insight 3.0、超級(jí)終端通訊程序、USB 下載程序
        五、實(shí)驗(yàn)步驟
        1、在ARM SDT 2.51 中,使用實(shí)驗(yàn)一中創(chuàng)建好的模板,新建一個(gè)項(xiàng)目work1。把操作
        系統(tǒng)的所需要的頭文件(*.h)和庫(kù)文件(*.alf)加入工程中。
        2、用Source Insight 3 創(chuàng)建一個(gè)工程,把work1 中的C 語(yǔ)言源文件文件加入。
        3、打開(kāi)Main.c 文件,在Main_Task 任務(wù)中添加代碼,使系統(tǒng)啟動(dòng)的時(shí)候,創(chuàng)建一個(gè)列
        表框作為系統(tǒng)的選項(xiàng)菜單,添加三個(gè)字符串到列表框中,作為功能菜單,包括:繪制圖形、
        設(shè)置時(shí)間、USB 下載。創(chuàng)建兩個(gè)文本框,其中一個(gè)作為系統(tǒng)的狀態(tài)提示,另一個(gè)用來(lái)顯示
        系統(tǒng)時(shí)間。啟動(dòng)消息循環(huán), 響應(yīng)鍵盤消息(OSM_KEY)和列表框被改變的消息
        (OSM_LISTCTRL_SELCHANGE)。Main_Task 的流程如圖17-1 所示。

        4、在Main_Task 任務(wù)中再創(chuàng)建一個(gè)新的任務(wù),此任務(wù)負(fù)責(zé)實(shí)時(shí)的更新顯示系統(tǒng)的時(shí)間.

        其流程圖如圖:17-2 所示。

        提示:
        1、用CreateTextCtrl 函數(shù)創(chuàng)建文本框,SetTextCtrlText 函數(shù)設(shè)置文本框中的內(nèi)容。
        2、用CreateListCtrl 函數(shù)創(chuàng)建列表框,ReLoadListCtrl 函數(shù)裝載一組字符串。
        3、使用OSTaskCreate 來(lái)創(chuàng)建系統(tǒng)任務(wù)。在uCOS-II 系統(tǒng)中,任務(wù)的優(yōu)先級(jí)是不能
        相同的。比如:Main_Task 任務(wù)的優(yōu)先級(jí)是12,Key_Scan_Task 任務(wù)的優(yōu)先級(jí)是56。目
        前使用的uCOS-II 的版本只支持64 個(gè)任務(wù),包括,還有8 個(gè)系統(tǒng)任務(wù),用戶可以使用
        的任務(wù)是56 個(gè)。創(chuàng)建任務(wù)的時(shí)候,需要選擇合適的任務(wù)優(yōu)先級(jí)(比如:14)。
        4、通過(guò)SetTextCtrlEdit 函數(shù)設(shè)置文本框是否處于編輯狀態(tài),使用TextCtrlDeleteChar
        和AppendChar2TextCtrl 函數(shù)在文本框中刪除和追加字符。
        5、鍵盤消息是OSM_KEY,列表框選擇改變消息是OSM_LISTCTRL_SELCHANGE
        6、使用Rtc_IsTimeChange 函數(shù),判斷系統(tǒng)的時(shí)鐘對(duì)應(yīng)的某一位是否改變。用
        Rtc_Format 格式化系統(tǒng)的時(shí)鐘格式得到Unicode 字符串,可以方便的顯示到文本框控件
        里。
        7、可以使用一個(gè)指針函數(shù)的數(shù)組裝載系統(tǒng)的各個(gè)功能(繪制圖形、設(shè)置時(shí)間、USB
        下載)函數(shù),便于管理。如下面的程序所示:
        void *MainFunction[]={(void*)OnDrawBmp,(void*)OnSetTime,(void*)OnUsb_Download};
        其中,OnDrawBmp,OnSetTime,OnUsb_Download 函數(shù)就是對(duì)應(yīng)的繪制圖形、設(shè)置
        時(shí)間、USB 下載功能函數(shù)。可以使用如下程序所示的方法調(diào)用指定序列的函數(shù):
        ( (void (*)(void)) (MainFunction[pMainListCtrl->CurrentSel]) )();
        其中,pMainListCtrl 表示指向系統(tǒng)主功能文本框的指針。
        7、用ARM SDT 2.5 編譯、下載并調(diào)試上述程序,檢查運(yùn)行結(jié)果
        8、生成發(fā)行版本的.bin 文件,通過(guò)USB 下載到嵌入式開(kāi)發(fā)板中,運(yùn)行并檢查輸出結(jié)果。



        關(guān)鍵詞: ARM 綜合實(shí)驗(yàn)

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 攀枝花市| 抚顺县| 澎湖县| 伊春市| 大余县| 中阳县| 石屏县| 许昌市| 中宁县| 西城区| 满洲里市| 兖州市| 安顺市| 轮台县| 周至县| 嘉义县| 普兰县| 广河县| 盐边县| 竹山县| 林州市| 通辽市| 韩城市| 全州县| 东阿县| 孝义市| 贵港市| 商都县| 海口市| 宁远县| 胶州市| 遂宁市| 上犹县| 鄂托克前旗| 来安县| 平乐县| 望城县| 名山县| 杭锦旗| 德格县| 额济纳旗|