<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于S3C44B0X的Microwindows在遠(yuǎn)程紅外抄表器中的應(yīng)用

          基于S3C44B0X的Microwindows在遠(yuǎn)程紅外抄表器中的應(yīng)用

          ——
          作者:陜西科技大學(xué)電氣與電子工程學(xué)院 陳艷 李茜 西北大學(xué)電子科學(xué)系 閆效鶯 黃鵬 車(chē)小平 時(shí)間:2006-12-22 來(lái)源:電子設(shè)計(jì)應(yīng)用 收藏

          摘  要: 本文詳細(xì)闡述了上的應(yīng)用,最后給出了中的應(yīng)用。

          關(guān)鍵詞;;

          引言

          隨著的廣泛應(yīng)用,面向人機(jī)交互的嵌入式產(chǎn)品的需求量越來(lái)越大,GUI的設(shè)計(jì)也變得越來(lái)越重要。在Linux之上進(jìn)行實(shí)時(shí)開(kāi)發(fā)的廠商,一般會(huì)選擇如下幾種GUI系統(tǒng):高度裁減的X Windows 系統(tǒng)、MiniGUI、Microwindows、QT/Embedded等。Microwindows作為一種開(kāi)放式源碼的嵌入式GUI軟件,目的是把圖形視窗環(huán)境引入到運(yùn)行Linux的小型設(shè)備和平臺(tái)上,其體系結(jié)構(gòu)如圖1所示。Microwindows的可移植性非常好,有多種平臺(tái)的支持,而以Samsung公司的嵌入式處理器芯片為核心的ARM平臺(tái)就是其中的一種。

          本文詳細(xì)闡述了Microwindows在S3C44B0X上的應(yīng)用,最后給出了Mcrowindows在中的應(yīng)用。



          圖1  Microwindows的體系結(jié)構(gòu)

          Microwindows在S3C44B0X上的應(yīng)用

          內(nèi)核的裁剪與配置

          中,內(nèi)核裁減是必不可少的工作。內(nèi)核的大小,關(guān)系到硬件系統(tǒng)需要多大的存儲(chǔ)空間,存儲(chǔ)空間越大需要的硬件成本也越高。 mClinux內(nèi)核采用模塊化的設(shè)計(jì),即很多功能塊可以獨(dú)立的加上或卸下,開(kāi)發(fā)人員在設(shè)計(jì)內(nèi)核時(shí)把這些內(nèi)核模塊作為可選的選項(xiàng),可以在編譯系統(tǒng)內(nèi)核時(shí)指定。因此,一種較通用的做法是對(duì)mClinux內(nèi)核重新編譯,在編譯時(shí)選擇嵌入式設(shè)備所需要的功能支持模塊,同時(shí)刪除不需要的功能。通過(guò)對(duì)內(nèi)核的重新配置,可以使系統(tǒng)運(yùn)行所需要的內(nèi)核顯著減小,從而縮減資源使用量。

          以S3C44B0X為核心的Embest EduKit-II目標(biāo)平臺(tái)采用了mClinux操作系統(tǒng),進(jìn)入顯示屏是256色STN LCD,其顯示驅(qū)動(dòng)基于Frame Buffer的驅(qū)動(dòng)程序,因此Microwindows的顯示需要在內(nèi)核中有Linux Frame Buffer支持。當(dāng)然,如果還需要其他的一些功能,例如TFTP下載,則也可以在配制中加載進(jìn)去。mClinux內(nèi)核對(duì)Frame Buffer支持的配置圖如圖 2 所示。



          圖2  mClinux內(nèi)核配置圖(關(guān)于Frame Buffer)


          基于Microwindows API的應(yīng)用程序的添加

          由于Microwindows API兼容Win32 API的編程模式,所以對(duì)于熟悉Win32 API的工程師而言,只要熟悉Microwindows API的函數(shù)庫(kù),就可以根據(jù)客戶需求,開(kāi)發(fā)出可以在Microwindows上支持的以Intel 16位、32位CPU,MIPS R4000 以及 ARM 芯片為核心的目標(biāo)平臺(tái)上運(yùn)行的應(yīng)用程序,從而開(kāi)發(fā)出新一代的嵌入式產(chǎn)品,如紅外抄表器,PDA等。

          在此GUI的平臺(tái)搭建過(guò)程中,在內(nèi)核中添加兩個(gè)應(yīng)用程序,它們分別為mterm.c、muserfd.c。其中mterm.c是一個(gè)顯示終端的窗口,在主機(jī)上的超級(jí)終端上輸入信息,在LCD上類(lèi)似Windows的窗口中就能得到顯示。實(shí)現(xiàn)過(guò)程如下:

          (1)修改./config/config.in,在相應(yīng)的菜單塊中增加一行,如下所示:
          bool'mterm' CONFIG_USER_
          MICROWIN_BIN_MTERM
          bool ' muserfd ' CONFIG_USER_
          MICROWIN_BIN_MUSERFD

          (2)在mClinux-distuser
          microwinMakefile文件中增加一行,如下所示:
          $(ROMFSINST) -e
           CONFIG_USER_MICROWIN_BIN_ MTERM      /bin/ mterm
          $(ROMFSINST) -e CONFIG_USER_MICROWIN_BIN_ MUSERFD   /bin/ muserfd
          修改后,對(duì)mClinux進(jìn)行重新編譯,就把新的應(yīng)用程序加載到文件系統(tǒng)中了。

          此外,還有一種快速添加應(yīng)用程序到文件系統(tǒng)中的方法,即省略在系統(tǒng)中添加程序編譯加載信息,直接用交叉編譯工具自行編譯,然后將生成的Flat可執(zhí)行文件放在romfs/bin目錄下,使用命令生成romfs鏡像。

          編譯Microwindows

          在應(yīng)用程序配置界面中,選擇Microwindows,按照?qǐng)D 3 的提示配置選定Microwindows中的項(xiàng),其余不選定。

          從Microwindows的配置界面可以看到新添加的應(yīng)用程序已經(jīng)出現(xiàn)在配置界面中,設(shè)置完畢后保存、退出。在Cygwin環(huán)境下依次執(zhí)行make dep; make clean; make lib_only;  make user_only ; make romfs; make image命令,即可完成編譯過(guò)程。


          圖3 Microwindows的編譯配置界面

          運(yùn)行Microwindows應(yīng)用程序

          編譯完成后,連接PC機(jī)上的超級(jí)終端,就可以運(yùn)行新的內(nèi)核了。在超級(jí)終端的sash提示符下,輸入如下命令運(yùn)行Microwindows應(yīng)用程序:
          />cd /bin
          /bin>./ mterm
          這時(shí),在LCD上就會(huì)顯示一個(gè)類(lèi)似Windows的窗口。
            
          Microwindows在遠(yuǎn)程紅外抄表器中的應(yīng)用

          遠(yuǎn)程紅外抄表器是專(zhuān)為住宅區(qū)物業(yè)管理人員抄取電表、水表、煤氣表設(shè)計(jì)的。它作為一款有推廣意義的嵌入式產(chǎn)品,為了便于用戶對(duì)其進(jìn)行操作,它不但需要給用戶提供一個(gè)友好的圖形界面,而且對(duì)成本的考慮也非常重要。Microwindows是一個(gè)開(kāi)放源碼的項(xiàng)目,它提供了比較完善的圖形功能,因此把它應(yīng)用于抄表器的開(kāi)發(fā)中能夠在滿足用戶需求的基礎(chǔ)上有效地降低成本。

          遠(yuǎn)程紅外抄表器的軟件設(shè)計(jì)框圖如圖4所示。對(duì)于Microwindows在紅外抄表上的應(yīng)用主要涉及以下幾個(gè)方面:

          1、 Microwindows的硬件驅(qū)動(dòng)程序的實(shí)現(xiàn),包括屏幕、鼠標(biāo)和鍵盤(pán)的驅(qū)動(dòng)程序的編寫(xiě)。



          圖4 紅外抄表器的軟件系統(tǒng)

          2、 Microwindows內(nèi)核的裁減及其編譯運(yùn)行。在裁減過(guò)程中應(yīng)該選擇工程師熟悉的編程接口及其所選接口要求的一些選項(xiàng),例如如果選擇了Nano-X API,則在配置Microwindows時(shí)就必須選擇支持客戶/服務(wù)器的選項(xiàng)Nano-X和nanawm。本設(shè)計(jì)選擇的是另一個(gè)編程接口Microwindows API,其配置編譯過(guò)程已經(jīng)做了詳細(xì)的闡述。

          3、對(duì)Microwindows所提供的編程接口的應(yīng)用程序進(jìn)行編寫(xiě)。選擇編程接口,按照抄表器的功能需求編寫(xiě)應(yīng)用程序,應(yīng)用程序要體現(xiàn)所有的功能,由應(yīng)用程序調(diào)用驅(qū)動(dòng)程序。應(yīng)用程序的設(shè)計(jì)一般包括如下幾個(gè)方面:多種輸入法的設(shè)計(jì)與支持;日期時(shí)間設(shè)置;定時(shí)開(kāi)關(guān)機(jī)設(shè)置;背光開(kāi)啟時(shí)間設(shè)置;液晶對(duì)比度調(diào)節(jié)設(shè)置;自動(dòng)啟動(dòng)設(shè)置;開(kāi)機(jī)密碼設(shè)置;串口選擇及波特率設(shè)置;數(shù)據(jù)保護(hù)設(shè)置;節(jié)電模式設(shè)置;系統(tǒng)信息。
            
          結(jié)語(yǔ)

          本文著重闡述了Microwindows在以S3C44B0X為核心的ARM平臺(tái)上的應(yīng)用,在此基礎(chǔ)上給出了Microwindows在遠(yuǎn)程紅外抄表器中的應(yīng)用。Microwindows正在嵌入式開(kāi)發(fā)領(lǐng)域穩(wěn)步發(fā)展,是完全免費(fèi)的開(kāi)放式源代碼,為嵌入式設(shè)備提供了更多的解決方案。任何開(kāi)發(fā)PDA或可移動(dòng)設(shè)備的工程師都可從因特網(wǎng)免費(fèi)下載相關(guān)程序,并將其移植或開(kāi)發(fā)。熟悉圖形應(yīng)用程序的用戶可以很快就在該系統(tǒng)上編寫(xiě)自己的圖形應(yīng)用程序,在未來(lái)的嵌入式系統(tǒng)設(shè)計(jì)中,它的應(yīng)用潛力將是無(wú)可限量的?!?/P>

          參考文獻(xiàn)
          1 田澤.嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用教程.北京:北京航空航天大學(xué)出版社,2005.
          2 張曉林,崔迎煒等.嵌入式系統(tǒng)設(shè)計(jì)與實(shí)踐. 北京:北京航空航天大學(xué)出版社,2006.
          3 宮輝.基于MC68HC908GP32的紅外抄表器.清華大學(xué)Motorola與DSP應(yīng)用開(kāi)發(fā)研究中心.
          4 鄧曉歐,周忠麗.嵌入式 GUI 系統(tǒng) Microwindows 的研究與應(yīng)用.中國(guó)民航飛行學(xué)院學(xué)報(bào)   2005,6:22-24.
          5 吳升艷,岳春生,胡冰. 嵌入式 Linux 系統(tǒng)下 Microwindows 的應(yīng)用. [J] 與嵌入式系統(tǒng)應(yīng)用  2003,1:103-105.



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();