大地资源网视频在线观看新浪,日本春药精油按摩系列,成人av骚妻潮喷,国产xxxx搡xxxxx搡麻豆

您現(xiàn)在的位置:智能制造網(wǎng)>技術(shù)中心>Windows CE

直播推薦

更多>

企業(yè)動(dòng)態(tài)

更多>

推薦展會(huì)

更多>

Windows CE

2009年06月22日 16:18:02人氣:1401來(lái)源:浙江啟揚(yáng)智能科技有限公司

windows ce是為多種嵌入式系統(tǒng)和產(chǎn)品而設(shè)計(jì)的緊湊、、可升級(jí)的操作系統(tǒng),并特別為有限的硬件資源設(shè)計(jì)了多線程、多任務(wù)和*優(yōu)先的操作系統(tǒng)環(huán)境。在無(wú)線通信領(lǐng)域有很大的應(yīng)用前景。  
本文重點(diǎn)討論了windows ce環(huán)境下無(wú)線網(wǎng)卡的安裝,并提出了一種在系統(tǒng)斷電重啟時(shí)自動(dòng)安裝無(wú)線網(wǎng)卡的解決方案;還對(duì)windows ce的系統(tǒng)定制、應(yīng)用程序的開(kāi)發(fā)及系統(tǒng)封裝進(jìn)行了介紹。由于windows ce與windows的同源和相似,決定了學(xué)習(xí)windows ce的簡(jiǎn)易性,這樣就縮短了應(yīng)用者的開(kāi)發(fā)周期。  
  1 windows ce簡(jiǎn)介  
windows ce包括四大基本模塊,它們提供了操作系統(tǒng)的關(guān)鍵特性,分別是:內(nèi)核(kernel)模塊、對(duì)象存儲(chǔ)(ob-ject store)模塊、gwes(用戶、應(yīng)用程序和操作系統(tǒng)之間的圖形用戶界面)模塊和通信(communication)模塊。圖1為windows ce的模塊化結(jié)構(gòu)圖。  
操作系統(tǒng)定制工具有windows ce platform builder(簡(jiǎn)稱pb),應(yīng)用程序開(kāi)發(fā)工具有嵌入式開(kāi)發(fā)工具包embedded visual tools,包括embedded visual c  (簡(jiǎn)稱evc)和embedded visual basic(簡(jiǎn)稱evb)。  
  2 特定硬件平臺(tái)windows ce操作系統(tǒng)的開(kāi)發(fā)



  

  
有了具體的嵌入式硬件平中后,就可以為其開(kāi)發(fā)滿足特定功能需要的windows ce系統(tǒng)??傊梢苑殖扇齻€(gè)步驟:操作系統(tǒng)的定制、特定功能應(yīng)用程序模塊的開(kāi)發(fā)、功能模塊封裝入  
操作系統(tǒng)。  
2.1 操作系統(tǒng)的初步定制  
圖2為在pb中定制windows ce操作系統(tǒng)的一般流程[3]。  
首先,選擇操作系統(tǒng)的基本配置,并且為特定的平臺(tái)選擇相應(yīng)的微處理器和平臺(tái)支持包bps(board support packet)。pb提供的bsp有cepc(基于pc機(jī)的wince硬件開(kāi)發(fā)平臺(tái))。可以選擇其一或自己定制特定平臺(tái)的bps。其次,制定平臺(tái),在此階段可開(kāi)發(fā)設(shè)備驅(qū)動(dòng),適當(dāng)?shù)夭眉?、添加組件,如有必要還需對(duì)某些配置文件進(jìn)行修改。然后,封裝所需要的各功能模塊,編譯生成os鏡像文件。若設(shè)備為自己定制的目標(biāo)設(shè)備,則需開(kāi)發(fā)oal(oem adaptation layer)、bps和bootloader。接著,把鏡像文件下載到目標(biāo)設(shè)備,進(jìn)行調(diào)試;需要的話,進(jìn)行重復(fù)配置、封裝、下載及調(diào)試,需要的話,進(jìn)行重復(fù)配置、封裝、下載及調(diào)試,直到滿足要求,完成平臺(tái)的創(chuàng)建。  
zui后導(dǎo)出相應(yīng)的sdk(software development kit)軟件開(kāi)發(fā)工具包,運(yùn)行后加域到evc中,使得可以進(jìn)行特定硬件平臺(tái)上的應(yīng)用程序開(kāi)發(fā)。sdk包含程序庫(kù)、頭文件、示例程序源代碼和庫(kù)函數(shù)使用文檔,同時(shí)還包括編程指導(dǎo)和api參與以及設(shè)備驅(qū)動(dòng)工具包(ddk)。  
2.2 特定功能應(yīng)用程序模塊的開(kāi)發(fā)  
開(kāi)發(fā)特定功能的應(yīng)用程序模塊就是在evc中編寫應(yīng)用程序,滿足系統(tǒng)功能擴(kuò)充的需要。重點(diǎn)要做以下工作:  
(1)為特定平臺(tái)選擇相應(yīng)的微處理器,如wce thumb或wce x86em等。  
(2)編寫應(yīng)用程序。方法上evc與pc機(jī)上運(yùn)行的vc差別不大。兩者的區(qū)別主要有:前者的api是后者api的子集,對(duì)不兼容的函數(shù)要做一些修改或者尋求可替代的函數(shù);前者為unicode環(huán)境,所有字符都是兩個(gè)字節(jié),而后者為ansi美國(guó)標(biāo)準(zhǔn),每個(gè)字符一個(gè)字節(jié),因此必要時(shí)兩者間要作數(shù)據(jù)類型轉(zhuǎn)換;另外在用戶界面編程和內(nèi)存管理等方面也有些差異。  
(3)對(duì)程序進(jìn)行編譯和調(diào)試。編譯時(shí)一定要選擇特定的硬件平臺(tái)。調(diào)試時(shí)可用微軟件包提供的工具microsoft activesync建立pc機(jī)上與目標(biāo)機(jī)的連接,把系統(tǒng)鏡像從pc機(jī)下載到目標(biāo)機(jī)上進(jìn)行調(diào)試;另外evc中帶有模擬器,可以在pc機(jī)上模擬目標(biāo)平臺(tái)上的大部分功能。  
2.3 功能模塊封裝入系統(tǒng)  
oem通常把必要的應(yīng)用程序和操作系統(tǒng)封裝在一起發(fā)布給使用者,因此要把應(yīng)用程序打包封裝入初步制定的操作系統(tǒng)中。需要做的工作主要有兩個(gè):  
(1)把編譯好的可執(zhí)行文件拷貝到windows ce系統(tǒng)相應(yīng)的文件夾中。  
(2)在pb中修改相應(yīng)的系統(tǒng)配置文件。pb所提供的配置文件包括四種文件類型:.bib,說(shuō)明需要打包進(jìn)鏡像文件的windows ce文件;.dat,文件系統(tǒng)、目錄和文件分配表描述;.db,windows ce對(duì)象存儲(chǔ)數(shù)據(jù)庫(kù)的描述;.reg,系統(tǒng)注冊(cè)表。在開(kāi)發(fā)過(guò)程中zui常用到的配置文件有:platform.bib、platform.reg、platform.dat、config.bib。platform.bib定義打包到os鏡像文件時(shí)所需要的文件(files)和模塊(modules)latform.reg定義目標(biāo)平臺(tái)冷啟動(dòng)時(shí)所加載的注冊(cè)表鍵值;platform.dat定義目標(biāo)平臺(tái)冷啟動(dòng)時(shí)所加載的系統(tǒng)文件、目錄和鏈接等;config.bib定義可用的物理地址,并進(jìn)行一些屬性設(shè)置。  
做好以上兩步以后,對(duì)操作系統(tǒng)重新編譯、下載、調(diào)試,zui終得到功能完整的系統(tǒng)鏡像。

  3 開(kāi)發(fā)實(shí)例——windows ce環(huán)境下無(wú)線網(wǎng)卡的自動(dòng)安裝
  
3.1 項(xiàng)目介紹
  


  
項(xiàng)目要求實(shí)現(xiàn)一個(gè)獨(dú)立的嵌入式無(wú)線通信模塊,通過(guò)現(xiàn)有的ieee80211b無(wú)線網(wǎng)卡接入無(wú)線局域網(wǎng)進(jìn)行通信。系統(tǒng)采用samsung公司的s3c2410芯片開(kāi)發(fā)嵌入式系統(tǒng)硬件平臺(tái),需要在windows ce環(huán)境驅(qū)勸pcmcia無(wú)線網(wǎng)卡。  
3.2 無(wú)線網(wǎng)卡安裝的問(wèn)題和解決方案  
windows ce操作系統(tǒng)支持兩種類型的設(shè)備驅(qū)動(dòng)程序:內(nèi)置式設(shè)備驅(qū)動(dòng)程序和可安裝設(shè)備驅(qū)動(dòng)程序。當(dāng)目標(biāo)朵與pc機(jī)相鏈,且目標(biāo)機(jī)有顯示屏和鏈盤時(shí),對(duì)于可安裝的設(shè)備驅(qū)動(dòng)程序,其安裝步驟為:建立目標(biāo)機(jī)與pc機(jī)的連接,將設(shè)備驅(qū)動(dòng)程序的.dll文件復(fù)制到windows ce的windows目錄下;當(dāng)系統(tǒng)檢測(cè)到設(shè)備時(shí),顯示屏中會(huì)出現(xiàn)相應(yīng)的對(duì)話框,用鍵盤輸入驅(qū)動(dòng)的名稱即可。  
項(xiàng)目中要為現(xiàn)有的無(wú)線網(wǎng)卡安裝驅(qū)動(dòng)程序。因?yàn)閣indows ce系統(tǒng)運(yùn)行時(shí)是基于ram存儲(chǔ)的,rom相當(dāng)于只讀硬盤,一旦系統(tǒng)斷電或冷啟動(dòng)后,ram中的信息就會(huì)丟失,尤其是一些注冊(cè)表的信息,所以要對(duì)ram持續(xù)供電。但由于本系統(tǒng)硬件電源不能保證持續(xù)供電,安裝了無(wú)線網(wǎng)卡的驅(qū)動(dòng)程序后,信息存儲(chǔ)在ram中,系統(tǒng)斷電或冷啟動(dòng)后,相關(guān)的信息會(huì)丟失。而且,目標(biāo)機(jī)在實(shí)際使用中無(wú)顯示屏和鍵盤。因此,斷電重啟時(shí)需要自動(dòng)重新安裝無(wú)線網(wǎng)卡驅(qū)動(dòng)程序。  
解決方案為:從系統(tǒng)持久存儲(chǔ)sm卡中讀取網(wǎng)卡驅(qū)動(dòng)程序xi825.dll和tcp/ip屬性配置文件config.txt,并按配置文件設(shè)備注冊(cè)表鍵值,然后為無(wú)線網(wǎng)卡安裝驅(qū)動(dòng)程序。若需要根據(jù)具體應(yīng)用環(huán)境更新tcp/ip屬性值,可用新的配置文件覆蓋sm卡中的舊文件,冷啟動(dòng)后,重新設(shè)備屬性值,在安裝網(wǎng)卡驅(qū)動(dòng)即可。  
用evc編寫應(yīng)用程序完成自動(dòng)安裝無(wú)線網(wǎng)卡驅(qū)動(dòng)的功能,圖3為應(yīng)用程序的大體流程。  
首先,把兩個(gè)文件從sm卡的storage card文件夾拷貝到windows ce系統(tǒng)的windows目錄下;拷貝成功后,按config.txt的內(nèi)容對(duì)注冊(cè)表進(jìn)行操作,設(shè)置具體環(huán)境下的tcp/ip屬性值;系統(tǒng)檢測(cè)到無(wú)線網(wǎng)卡后,在彈出名為“unidentified pccard adapter”的對(duì)話框中程序自動(dòng)輸入網(wǎng)卡驅(qū)動(dòng)程序名,完成無(wú)線網(wǎng)卡的自動(dòng)安裝。  
3.3 幾個(gè)具體問(wèn)題的解決  
下面,再討論一下本方案中幾個(gè)具體問(wèn)題的解決辦法。包括對(duì)注冊(cè)表的操作、自動(dòng)安裝功能的實(shí)現(xiàn)、程序流程的總體控制以及將程序打包封裝入操作系統(tǒng)的作法。  
3.3.1 對(duì)注冊(cè)表的操作  
windows ce中有一系列api函數(shù)可以對(duì)注冊(cè)表進(jìn)行操作,完成打開(kāi)關(guān)閉注冊(cè)表、讀取或修改鍵值等功能。另外,windows ce注冊(cè)表中值的類型為unicode;而配置文件config.txt是在pc機(jī)上產(chǎn)生的,類別為ansi。要按cogfing.txt中讀取的值設(shè)定注冊(cè)表值,就要進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換,可以用函數(shù)multibytetowidechar()實(shí)現(xiàn)[4]。關(guān)鍵代碼如下:  
regopenkeyex(hkey_local_machine, //根鍵text("comm\xi8251\parms\tcpip"),  
//打開(kāi)根鍵下的子鍵  
0, //預(yù)留值,必設(shè)為0  
0, //不支持此項(xiàng),必設(shè)為0  
&hkey //zui終打開(kāi)鍵的句柄指針  
);
  


  
regsetvalueex( hkey, //對(duì)鍵操作的句柄  
text("ipaddress"),//鍵中的數(shù)據(jù)項(xiàng)名  
0, //預(yù)留值,必設(shè)為0  
reg_gz, //數(shù)據(jù)項(xiàng)中值的類型  
(const bye*)((lpctstr)regdata),//存有數(shù)據(jù)項(xiàng)值的緩沖區(qū)  
dwdatasize //值的字節(jié)數(shù)  
); //對(duì)"ipaddress"數(shù)據(jù)項(xiàng)的值作修改,即改變ip值  
3.3.2 自動(dòng)安裝功能的實(shí)現(xiàn)  
用findwindows()函數(shù)判斷對(duì)話窗口的出現(xiàn);用keybd_event()函數(shù)模擬鍵盤輸入。關(guān)鍵代碼如下:  
tchar g_sztitle[80]=text("unidentified pccard adapter"); //對(duì)話框的標(biāo)題  
hwnd hwnd=..findwindows(null,g_sztitle); //判斷此標(biāo)題名的窗口是否已出現(xiàn),不論是否為前臺(tái)窗口  
if (hwnd! =null) //若窗口已出現(xiàn)  
{..setforegroundwindows(hwnd); //將此窗口設(shè)置前臺(tái)窗口  
keybd_event(0x58,0,0,0); //按下x鍵  
keybd_event(0x58,0,keyevente_keyup,0); //抬起x鍵  
//完成了按下和抬起x鍵的兩個(gè)動(dòng)作,就模擬了鍵盤輸入字符x.  
............//用同樣的方法輸入 "i825.dll"  
keybd_event(0x0d,0,0,0);  
keybd_event(0x0d,0,keyeventf_keyup,0); //zui后輸入確認(rèn)鍵  
}  
正確輸入后,可以看到無(wú)線網(wǎng)卡的顯示燈開(kāi)始閃爍,說(shuō)明網(wǎng)卡已經(jīng)安裝成功,等待進(jìn)行無(wú)線通信。  
3.3.3 程序流程的總體控制  
為了保證程序流程的順序,整個(gè)程序中還需要有一個(gè)總體監(jiān)視控制的管理員。這種監(jiān)控功能,可以通過(guò)發(fā)送接收特定消息給主控函數(shù)的方法,也可以采用等待特定事件對(duì)象的方法,還可以采用開(kāi)定時(shí)器查詢的方法等。鑒于方法簡(jiǎn)單,而且對(duì)系統(tǒng)資源占用并不大,這里選用了開(kāi)定時(shí)器查詢的方法,并設(shè)置了標(biāo)志位flag區(qū)分不同階段工作,進(jìn)行相應(yīng)的操作。下面列出部門關(guān)鍵代碼:  
flag=0; //zui初標(biāo)志位設(shè)為0,即先拷貝所需要文件  
m_ntimer=settimer(1,2000,null); //開(kāi)啟定時(shí)器  
killtimer(m_ntimer); //時(shí)間到,先關(guān)閉定時(shí)器,進(jìn)行相應(yīng)判斷和操作。  
3.3.4 應(yīng)用程序封裝入系統(tǒng)  
上文已經(jīng)講了將應(yīng)用程序封裝入操作系統(tǒng)的一般方法,分為應(yīng)用程序的拷貝和修改系統(tǒng)配置文件兩步。此項(xiàng)目zui后要把開(kāi)的應(yīng)用程序monitor.exe打包封裝入操作系統(tǒng)。這里重點(diǎn)介紹一下系統(tǒng)中幾個(gè)配置文件的具體修改情況。  
(1) 在platform.bib文件中的files部門加入以下代碼  


  
其中,monitor.lnk為monitor.exe的鏈接程序(快捷方式),制作方法很簡(jiǎn)單,可以通過(guò)一個(gè)ascii碼編輯器編寫,格式為:#20.exe。  
此配置文件中的代碼表示,將monitor.exe和monitor.lnk加載到名為nk的內(nèi)存區(qū)中(nk的定義在config.bib文件中的memory部分完成),文件的屬性為u(非壓縮文件),這樣就完成了把自己所開(kāi)發(fā)的應(yīng)用程序及其鏈接程序封裝進(jìn)操作系統(tǒng)中的“聲明”。  
(2) 在platform.dat文件中加入以下代碼:  
directory ("):-file("monitor.lnk",“.lnk”)  
由于platform.bib做過(guò)聲明,這兩個(gè)文件在操作系統(tǒng)啟動(dòng)后會(huì)映射到目錄下,這是默認(rèn)的目錄。所以此外的代碼表示在windows ce啟動(dòng)時(shí)會(huì)自動(dòng)運(yùn)行monitor.exe。  
做完了以上工作,再對(duì)操作系統(tǒng)進(jìn)行編譯,把應(yīng)用程序封裝到了windows ce操作系統(tǒng)中,而且系統(tǒng)啟動(dòng)后會(huì)運(yùn)行此應(yīng)用程序,完成自動(dòng)安裝無(wú)線網(wǎng)卡的功能。
全年征稿/資訊合作 聯(lián)系郵箱:1271141964@qq.com

免責(zé)聲明

  • 凡本網(wǎng)注明"來(lái)源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請(qǐng)必須注明智能制造網(wǎng),http://www.xashilian.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
  • 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
  • 本網(wǎng)轉(zhuǎn)載并注明自其它來(lái)源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品來(lái)源,并自負(fù)版權(quán)等法律責(zé)任。
  • 如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

<
更多 >

工控網(wǎng)機(jī)器人儀器儀表物聯(lián)網(wǎng)3D打印工業(yè)軟件金屬加工機(jī)械包裝機(jī)械印刷機(jī)械農(nóng)業(yè)機(jī)械食品加工設(shè)備制藥設(shè)備倉(cāng)儲(chǔ)物流環(huán)保設(shè)備造紙機(jī)械工程機(jī)械紡織機(jī)械化工設(shè)備電子加工設(shè)備水泥設(shè)備海洋水利裝備礦冶設(shè)備新能源設(shè)備服裝機(jī)械印染機(jī)械制鞋機(jī)械玻璃機(jī)械陶瓷設(shè)備橡塑設(shè)備船舶設(shè)備電子元器件電氣設(shè)備


我要投稿
  • 投稿請(qǐng)發(fā)送郵件至:(郵件標(biāo)題請(qǐng)備注“投稿”)1271141964.qq.com
  • 聯(lián)系電話0571-89719789
工業(yè)4.0時(shí)代智能制造領(lǐng)域“互聯(lián)網(wǎng)+”服務(wù)平臺(tái)
智能制造網(wǎng)APP

功能豐富 實(shí)時(shí)交流

智能制造網(wǎng)小程序

訂閱獲取更多服務(wù)

微信公眾號(hào)

關(guān)注我們

抖音

智能制造網(wǎng)

抖音號(hào):gkzhan

打開(kāi)抖音 搜索頁(yè)掃一掃

視頻號(hào)

智能制造網(wǎng)

公眾號(hào):智能制造網(wǎng)

打開(kāi)微信掃碼關(guān)注視頻號(hào)

快手

智能制造網(wǎng)

快手ID:gkzhan2006

打開(kāi)快手 掃一掃關(guān)注
意見(jiàn)反饋
關(guān)閉
企業(yè)未開(kāi)通此功能
詳詢客服 : 0571-87858618
主站蜘蛛池模板: 平湖市| 合水县| 乌鲁木齐市| 连州市| 德兴市| 策勒县| 泰顺县| 博兴县| 唐山市| 漠河县| 荣成市| 公安县| 开平市| 秭归县| 沛县| 盱眙县| 利辛县| 瑞安市| 花莲市| 宜宾县| 龙门县| 博罗县| 永嘉县| 高雄县| 柳州市| 石城县| 抚远县| 阜平县| 青龙| 西平县| 武宁县| 宜兴市| 黔东| 昆明市| 赣州市| 叶城县| 博白县| 信丰县| 青海省| 兴山县| 玉树县|