亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        MCF52223的多用戶在線編程應(yīng)用設(shè)計

        2010-08-14 08:03:44錢海亮錢仇圣
        關(guān)鍵詞:用戶程序服務(wù)程序多用戶

        錢海亮,錢仇圣

        (1.大連理工大學(xué),大連116620; 2.蘇州大學(xué))

        錢海亮(本科生)、錢仇圣(碩士研究生),研究方向為嵌入式系統(tǒng)應(yīng)用。

        引 言

        目前,大多數(shù)嵌入式系統(tǒng)編程是針對單用戶程序,即芯片中只有一個程序。有些情況下,用戶希望在芯片中駐留多個用戶程序,并能方便更新和選擇運行,這就提出了多用戶在線編程的需求。隨著制造工藝的進步,芯片由8位發(fā)展到16位、32位,集成的Flash和 RAM也越來越大。這給多用戶在線編程提供了基礎(chǔ),而集成的Flash模塊給在線編程提供了可能[1]。芯片的發(fā)展及資源變化如表1所列。

        表1 芯片發(fā)展及資源變化

        嵌入式系統(tǒng)中的多用戶在線編程是指,在芯片中駐留一個監(jiān)控程序,負責(zé)下載PC機編譯后的用戶程序到指定的Flash區(qū)域,以及根據(jù)用戶的選擇來運行指定的用戶程序。多用戶在線編程與單用戶在線編程的區(qū)別是,多用戶程序共享系統(tǒng)資源,極大地提高了資源的利用率,但某一時刻只有監(jiān)控程序或一個用戶程序運行。

        本文以飛思卡爾公司推出的內(nèi)部集成USB2.0模塊的32位微控制器MCF52223為例,在分析監(jiān)控程序、中斷向量重定位、全局變量訪問等關(guān)鍵技術(shù)的基礎(chǔ)上,設(shè)計并實現(xiàn)了用于機器人開發(fā)平臺的多用戶在線編程系統(tǒng)。

        1 監(jiān)控程序設(shè)計

        監(jiān)控程序類似于操作系統(tǒng)的內(nèi)核,是多用戶在線編程的核心技術(shù)。復(fù)位后首先啟動監(jiān)控程序,主要負責(zé)通過USB接口下載PC機的多用戶程序。監(jiān)控程序涉及的主要模塊包括:USB通信模塊、Flash擦除與寫入模塊、用戶程序選擇運行模塊、中斷模塊。通過 USB模塊和Flash擦除與寫入模塊下載多個用戶程序,由用戶程序選擇運行模塊選擇某個用戶程序運行,從而實現(xiàn)多用戶在線編程。

        1.1 USB通信模塊

        MCF52223集成了USB 2.0模塊[3],可方便、高效地與PC機通信,下載多用戶程序。檢驗正確后,將接收到的用戶程序交給Flash擦除與寫入模塊處理。數(shù)據(jù)包協(xié)議格式如下(數(shù)據(jù)長度小于512字節(jié)):

        1.2 Flash擦除與寫入模塊

        Flash擦除與寫入模塊負責(zé)將用戶程序?qū)懭胗脩魠^(qū)所在的Flash中,從而實現(xiàn)多用戶程序的下載。MCF52223擁有256 KB的 Flash,分為32個扇區(qū),每個扇區(qū)分為4頁,每頁為2 048字節(jié)[4]。擦除的最小單位為一頁,因此在設(shè)計多用戶在線編程系統(tǒng)時,給每個用戶分配的空間以頁為單位[3]。系統(tǒng)預(yù)留6個大小為32 KB的用戶區(qū),即最多6個用戶在線編程。

        1.3 監(jiān)控程序執(zhí)行流程

        監(jiān)控程序是多用戶在線編程的核心,是芯片首先執(zhí)行的代碼。其主要功能是初始化USB通信模塊和Flash擦除與寫入模塊,并通過USB下載用戶程序,如圖1所示。

        在全局變量初始化中聲明unsigned char UserFlag=0,聲明指針unsigned short*Time=(unsigned short*)0x20000400。UserFlag用于保存選擇的用戶程序。指針Time所指向的區(qū)域用于保存定時器中斷次數(shù),使得用戶區(qū)和監(jiān)控程序能共享全局變量。

        圖1 監(jiān)控程序執(zhí)行流程

        2 中斷向量重定位技術(shù)

        單用戶在線編程系統(tǒng)中每個中斷只有一個中斷服務(wù)程序,中斷產(chǎn)生后直接跳轉(zhuǎn)到該中斷服務(wù)程序中運行,實現(xiàn)起來比較簡單[2]。而對于多用戶在線編程系統(tǒng),每個用戶程序都可以添加自己的中斷服務(wù)程序,即對于一個中斷號會有多個不同用戶的中斷服務(wù)程序,由原來一對一的關(guān)系轉(zhuǎn)變?yōu)橐粚Χ嗟年P(guān)系。中斷向量重定位技術(shù)就是用來解決這個難題的。

        當(dāng)選擇某個用戶程序運行時,全局變量UserFlag記錄了用戶號,產(chǎn)生中斷后會從監(jiān)控程序的中斷向量表中查找中斷服務(wù)程序的入口地址。但由于是多用戶編程,還需根據(jù)當(dāng)前用戶程序標志UserFlag查找中斷向量重定位表,得到當(dāng)前用戶程序的相應(yīng)中斷程序入口地址,并跳轉(zhuǎn)到當(dāng)前用戶相應(yīng)中斷程序執(zhí)行(即由傳統(tǒng)的直接跳轉(zhuǎn)轉(zhuǎn)變成多級間接跳轉(zhuǎn)),如表2所列。中斷執(zhí)行流程如圖2所示。

        表2 中斷向量重定位表

        圖2 中斷執(zhí)行流程

        每個用戶程序中有一張中斷向量重定位表,用于跳轉(zhuǎn)到用戶編寫的中斷服務(wù)子程序。每個用戶區(qū)的中斷服務(wù)程序的函數(shù)名已經(jīng)固定好,用于指定入口地址。

        舉例說明:在用戶程序2中開啟了 UART1接收中斷。當(dāng)監(jiān)控程序?qū)⒖刂茩?quán)交給用戶程序2后,用戶程序2處于運行狀態(tài)(UserFlag=2)。如果此時 UART1接收到數(shù)據(jù),就會向MCU發(fā)出 UART中斷(0x4E)請求。MCU立即響應(yīng)該中斷,并跳轉(zhuǎn)到中斷向量表中該中斷對應(yīng)的中斷服務(wù)程序的入口地址處(_Uart1_handler)運行。在該中斷服務(wù)程序中根據(jù)UserFlag跳轉(zhuǎn)到用戶程序2的中斷向量重定位表User2Vector[1](1表示在用戶程序中的中斷重定位號),并開始執(zhí)行真正的中斷服務(wù)程序。

        3 全局變量訪問

        在多用戶編程系統(tǒng)中還需解決的問題是,監(jiān)控程序中定義的變量如何在多用戶程序中共享。在用戶程序中可能需要訪問監(jiān)控程序中定義的全局變量,但由于用戶程序和監(jiān)控程序是分開編譯的,所以用戶程序無法直接訪問監(jiān)控程序中定義的全局變量。例如,將MCF52223的定時器中斷設(shè)為1 ms,用戶程序希望通過查詢系統(tǒng)時鐘的方式控制小燈每隔1 s亮滅一次。因此,必須在監(jiān)控程序中添加全局變量,以記錄中斷的次數(shù)。用戶程序查詢該全局變量,記錄第一次的值t1,并將再次讀得的值t2和 t1比較。當(dāng)t2-t1>=1 000時便點亮小燈,同時更新t1的值t1=t2。有以下3種方法可實現(xiàn)全局變量的訪問。

        3.1 寄存器

        在MCF52223中可以使用的數(shù)據(jù)寄存器有D0~D7[3],主要用來保存操作數(shù)或運算結(jié)果等信息。它們的存在節(jié)省了存取操作數(shù)所需占用總線和訪問存儲器的時間。寄存器資源比較少,而且寄存器是CPU使用的,因此用戶程序在使用前需要將寄存器的值進棧,用完后立即恢復(fù)。由于用戶程序是不定期地訪問寄存器,所以需要頻繁地進出棧,而且在C語言工程中直接操作寄存器需要嵌入?yún)R編代碼,使用起來不方便,還會破壞程序的整體風(fēng)格。

        3.2 RAM

        RAM是指隨機存取存儲器,存儲單元的內(nèi)容可按需隨意取出或存入,且存取的速度與存儲單元的位置無關(guān)。這種存儲器在斷電時將丟失其存儲內(nèi)容,故主要用于存儲短時間使用的程序。每個單片機上都集成了一定容量的RAM,用于程序的運行、變量的存儲以及系統(tǒng)堆棧的開辟。程序中定義的全局變量都是在RAM中分得的一塊空間,而變量名只是地址的代號,因而可以使用地址直接存取RAM。

        3.3 Flash

        對Flash存儲器的讀寫不同于一般的RAM讀寫,需要專門的編程。Flash有兩種基本操作:擦除(Erase)和寫入(Program)。擦除操作的含義是將存儲單元的內(nèi)容由二進制的0變成1;而寫入操作的含義,是將存儲單元的內(nèi)容由二進制的1變成0。對Flash的寫入相當(dāng)于對其執(zhí)行邏輯與的操作,邏輯與的結(jié)果即Flash的內(nèi)容。在執(zhí)行寫入操作之前要確保該區(qū)域是空白的(存儲單元內(nèi)容為$FF),即同一塊Flash擦除后只能寫一次。因此,在寫Flash之前一般都要先執(zhí)行擦除操作。

        雖然RAM的效率較寄存器低,但是比Flash提升了很多,而且可以用變量或指針來操作,使用比較簡單。因而,最終確定使用RAM來實現(xiàn)多用戶在線編程的全局變量共享。實現(xiàn)方法:定義unsigned short類型的指針指向地址為0x20000400所在的RAM區(qū)。

        unsigned short*p;

        p=(unsigned short*)0x20000400;

        系統(tǒng)每毫秒產(chǎn)生一次定時器中斷,在中斷服務(wù)程序中將指針的值加1,即(*p)++。在用戶程序中也可以定義指針,同樣指定到地址為0x20000400所在的RAM區(qū),也可以跟監(jiān)控程序一樣使用地址來共享。

        4 系統(tǒng)試驗評估

        隨著機器人教育的普及,采用多用戶程序在線編程技術(shù)的教育機器人開發(fā)平臺隨之而產(chǎn)生。教育機器人開發(fā)平臺分為3部分:外圍設(shè)備、主控板及軟件平臺。學(xué)生通過軟件平臺生成多個用戶程序,通過 USB將編譯后的用戶程序下載到主控板的不同用戶空間中。可以利用按鍵選擇不同的用戶程序運行,搭配外圍設(shè)備即可實現(xiàn)用戶的功能。

        在分析并解決了前面幾個關(guān)鍵問題后,設(shè)計的監(jiān)控程序完全能滿足多用戶在線編程的要求。通過使用指針的方法在多用戶程序中共享監(jiān)控程序中定義的全局變量,如本設(shè)計中的系統(tǒng)時鐘。本文使用了USB接口,因而支持即插即用,并且高通信速率和有效的校驗保證了用戶程序快速、高效的下載,為多用戶在線編程提供了高可靠性。

        結(jié) 語

        多用戶程序在線編程技術(shù)建立在監(jiān)控程序的基礎(chǔ)上,是對單用戶程序在線編程技術(shù)的一種改進,使硬件資源得以充分利用。文中以MCF52223芯片為例設(shè)計的多用戶程序在線編程系統(tǒng),可穩(wěn)定地應(yīng)用于教育機器人開發(fā)平臺。實踐表明,多用戶在線編程運行穩(wěn)定、方便更新,具有一定的推廣價值。但是有關(guān)在線編程技術(shù)的文獻資料比較少,特別是多用戶程序在線編程方面,因此,涉及的相關(guān)細節(jié)還需進一步研究。

        [1]王宜懷.嵌入式應(yīng)用在線編程開發(fā)系統(tǒng)的研制[J].計算機工程,2002,28(12):22-24.

        [2]殷樹明.嵌入式系統(tǒng)中多用戶程序在線編程技術(shù)[J].計算機工程,2009,35(5):37-39,43.

        [3]Freescale.Freescale MCF52223 MCF52223RM[OL].2004[2009-11].http://www.freescale.com,2004.

        [4]Freescale.Freescale MCF52223 DataSheet[OL].2004[2009-11].http://www.freescale.com.

        [5]鄧宗明,蔣祺明.基于PowerPC開發(fā)板的Flash編程方法與實現(xiàn)[J].計算機工程,2004,30(1):168-170.

        [6]Morton Todd D.嵌入式微控制器[M].嚴雋永,譯.北京:機械工業(yè)出版社,2005.

        猜你喜歡
        用戶程序服務(wù)程序多用戶
        安泰科多用戶報告訂閱單
        基于移動終端的人事信息員工自助服務(wù)系統(tǒng)設(shè)計
        安泰科多用戶報告訂閱單
        安泰科多用戶報告訂閱單
        基于C#的進程守護程序的設(shè)計
        視聽(2020年3期)2020-06-11 14:28:18
        安泰科多用戶報告訂閱單
        變速箱控制系統(tǒng)Bootloader設(shè)計與實現(xiàn)
        嵌入式設(shè)備遠程升級方案設(shè)計
        基于CCS5.5的TMS320C6000程序Flash上電自舉設(shè)計及三種固化方法對比
        水利工程施工監(jiān)理服務(wù)程序及質(zhì)量控制
        国产做a爱片久久毛片a片| 久久久久久久女国产乱让韩| 狠狠色综合7777久夜色撩人ⅰ| 国产成人av综合色| 热久久国产欧美一区二区精品| 中文字幕欧美人妻精品一区 | 任我爽精品视频在线播放| 欧美aa大片免费观看视频| 国产69口爆吞精在线视频喝尿 | 级毛片无码av| 精品中文字幕精品中文字幕| 久久婷婷综合色一区二区| 蜜桃视频免费进入观看| 人妻无码一区二区不卡无码av| 无码一区二区波多野结衣播放搜索| 国产成人福利在线视频不卡| 久久亚洲宅男天堂网址| 亚洲国产国语在线对白观看| 熟女一区二区三区在线观看| 99国产精品久久久蜜芽| 国产精品乱码在线观看| 91自国产精品中文字幕| 久久久亚洲av成人乱码| 欧美噜噜久久久xxx| 亚洲小说区图片区另类春色| 日韩人妻精品无码一区二区三区 | 国产一区二区长腿丝袜高跟鞋| 亚洲av首页在线| 777亚洲精品乱码久久久久久| 国产爆乳乱码女大生Av| 日本高清中文字幕二区在线| 熟女人妻在线中文字幕| 亚洲国产欧美在线观看| 欧美疯狂做受xxxxx高潮| 国产亚洲av人片在线播放| 91九色视频在线国产| 中文字幕在线乱码一区| 亚洲av成人无码一区二区三区在线观看| 亚洲精品aa片在线观看国产| 色婷婷久久免费网站| 日本国产一区在线观看|