亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Windows > 正文

Windows CE環境下無線網卡的自動安裝

2020-05-27 13:30:54
字體:
來源:轉載
供稿:網友

  摘要:討論了Windows CE環境下無線網卡的安裝,并提出了一種在系統斷電重啟時自動安裝無線網卡的解決方案。對Windows CE的系統定制、應用程序的開發及系統封裝進行了介紹。

  關鍵詞:嵌入式系統 Windows CE 無線網卡 設備驅動

  Windows CE是為多種嵌入式系統和產品而設計的緊湊、高效、可升級的操作系統,并特別為有限的硬件資源設計了多線程、多任務和完全優先的操作系統環境。在無線通信領域有很大的應用前景。

  本文重點討論了Windows CE環境下無線網卡的安裝,并提出了一種在系統斷電重啟時自動安裝無線網卡的解決方案;還對Windows CE的系統定制、應用程序的開發及系統封裝進行了介紹。由于Windows CE與Windows的同源和相似,決定了學習Windows CE的簡易性,這樣就縮短了應用者的開發周期。

  1 Windows CE簡介

  Windows CE包括四大基本模塊,它們提供了操作系統的關鍵特性,分別是:內核(Kernel)模塊、對象存儲(Object Store)模塊、GWES(用戶、應用程序和操作系統之間的圖形用戶界面)模塊和通信(Communication)模塊。圖1為Windows CE的模塊化結構圖。

  操作系統定制工具有Windows CE Platform Builder(簡稱PB),應用程序開發工具有嵌入式開發工具包Embedded Visual Tools,包括Embedded Visual C++(簡稱EVC)和Embedded Visual Basic(簡稱EVB)。

  2 特定硬件平臺Windows CE操作系統的開發

  有了具體的嵌入式硬件平中后,就可以為其開發滿足特定功能需要的Windows CE系統??傊梢苑殖扇齻€步驟:操作系統的定制、特定功能應用程序模塊的開發、功能模塊封裝入

  操作系統。

  2.1 操作系統的初步定制

  圖2為在PB中定制Windows CE操作系統的一般流程[3]。

  首先,選擇操作系統的基本配置,并且為特定的平臺選擇相應的微處理器和平臺支持包BPS(Board Support Packet)。PB提供的BSP有CEPC(基于PC機的WinCE硬件開發平臺)。開發者可以選擇其一或自己定制特定平臺的BPS。其次,制定平臺,在此階段可開發設備驅動,適當地裁剪、添加組件,如有必要還需對某些配置文件進行修改。然后,封裝所需要的各功能模塊,編譯生成OS鏡像文件。若設備為自己定制的目標設備,則需開發OAL(OEM Adaptation Layer)、BPS和BootLoader。接著,把鏡像文件下載到目標設備,進行調試;需要的話,進行重復配置、封裝、下載及調試,需要的話,進行重復配置、封裝、下載及調試,直到滿足要求,完成平臺的創建。最后導出相應的SDK(Software Development Kit)軟件開發工具包,運行后加域到EVC中,使得可以進行特定硬件平臺上的應用程序開發。SDK包含程序庫、頭文件、示例程序源代碼和庫函數使用文檔,同時還包括編程指導和API參與以及設備驅動工具包(DDK)。

  2.2 特定功能應用程序模塊的開發

  開發特定功能的應用程序模塊就是在EVC中編寫應用程序,滿足系統功能擴充的需要。重點要做以下工作:

  (1)為特定平臺選擇相應的微處理器,如WCE THUMB或WCE x86em等。

  (2)編寫應用程序。方法上EVC與PC機上運行的VC差別不大。兩者的區別主要有:前者的API是后者API的子集,對不兼容的函數要做一些修改或者尋求可替代的函數;前者為Unicode環境,所有字符都是兩個字節,而后者為ANSI美國標準,每個字符一個字節,因此必要時兩者間要作數據類型轉換;另外在用戶界面編程和內存管理等方面也有些差異。

  (3)對程序進行編譯和調試。編譯時一定要選擇特定的硬件平臺。調試時可用微軟件包提供的工具Microsoft Activesync建立PC機上與目標機的連接,把系統鏡像從PC機下載到目標機上進行調試;另外EVC中帶有模擬器,可以在PC機上模擬目標平臺上的大部分功能。

  2.3 功能模塊封裝入系統

  OEM開發者通常把必要的應用程序和操作系統封裝在一起發布給使用者,因此要把應用程序打包封裝入初步制定的操作系統中。需要做的工作主要有兩個:

  (1)把編譯好的可執行文件拷貝到Windows CE系統相應的文件夾中。

  (2)在PB中修改相應的系統配置文件。PB所提供的配置文件包括四種文件類型:.bib,說明需要打包進鏡像文件的Windows CE文件;.dat,文件系統、目錄和文件分配表描述;.db,Windows CE對象存儲數據庫的描述;.reg,系統注冊表。在開發過程中最常用到的配置文件有:Platform.bib、Platform.reg、Platform.dat、Config.bib。Platform.bib定義打包到OS鏡像文件時所需要的文件(files)和模塊(modules);Platform.reg定義目標平臺冷啟動時所加載的注冊表鍵值;Platform.dat定義目標平臺冷啟動時所加載的系統文件、目錄和鏈接等;Config.bib定義可用的物理地址,并進行一些屬性設置。

  做好以上兩步以后,對操作系統重新編譯、下載、調試,最終得到功能完整的系統鏡像。

  3 開發實例——Windows CE環境下無線網卡的自動安裝

  3.1 項目介紹

  項目要求實現一個獨立的嵌入式無線通信模塊,通過現有的IEEE80211b無線網卡接入無線局域網進行通信。系統采用Samsung公司的S3C2410芯片開發嵌入式系統硬件平臺,需要在Windows CE環境驅勸PCMCIA無線網卡。

  3.2 無線網卡安裝的問題和解決方案

  Windows CE操作系統支持兩種類型的設備驅動程序:內置式設備驅動程序和可安裝設備驅動程序。當目標朵與PC機相鏈,且目標機有顯示屏和鏈盤時,對于可安裝的設備驅動程序,其安裝步驟為:建立目標機與PC機的連接,將設備驅動程序的.dll文件復制到Windows CE的Windows目錄下;當系統檢測到設備時,顯示屏中會出現相應的對話框,用鍵盤輸入驅動的名稱即可。

  項目中要為現有的無線網卡安裝驅動程序。因為Windows CE系統運行時是基于RAM存儲的,ROM相當于只讀硬盤,一旦系統斷電或冷啟動后,RAM中的信息就會丟失,尤其是一些注冊表的信息,所以要對RAM持續供電。但由于本系統硬件電源不能保證持續供電,安裝了無線網卡的驅動程序后,信息存儲在RAM中,系統斷電或冷啟動后,相關的信息會丟失。而且,目標機在實際使用中無顯示屏和鍵盤。因此,斷電重啟時需要自動重新安裝無線網卡驅動程序。

  解決方案為:從系統持久存儲SM卡中讀取網卡驅動程序xi825.dll和TCP/IP屬性配置文件config.txt,并按配置文件設備注冊表鍵值,然后為無線網卡安裝驅動程序。若需要根據具體應用環境更新TCP/IP屬性值,可用新的配置文件覆蓋SM卡中的舊文件,冷啟動后,重新設備屬性值,在安裝網卡驅動即可。

  用EVC編寫應用程序完成自動安裝無線網卡驅動的功能,圖3為應用程序的大體流程。

  首先,把兩個文件從SM卡的storage card文件夾拷貝到Windows CE系統的Windows目錄下;拷貝成功后,按config.txt的內容對注冊表進行操作,設置具體環境下的TCP/IP屬性值;系統檢測到無線網卡后,在彈出名為“Unidentified PCCard Adapter”的對話框中程序自動輸入網卡驅動程序名,完成無線網卡的自動安裝。

  3.3 幾個具體問題的解決

  下面,再討論一下本方案中幾個具體問題的解決辦法。包括對注冊表的操作、自動安裝功能的實現、程序流程的總體控制以及將程序打包封裝入操作系統的作法。

  3.3.1 對注冊表的操作

  Windows CE中有一系列API函數可以對注冊表進行操作,完成打開關閉注冊表、讀取或修改鍵值等功能。另外,Windows CE注冊表中值的類型為Unicode;而配置文件config.txt是在PC機上產生的,類別為ANSI。要按cogfing.txt中讀取的值設定注冊表值,就要進行數據類型的轉換,可以用函數MultiByteToWideChar()實現[4]。關鍵代碼如下:

  RegOpenKeyEx(HKEY_LOCAL_MACHINE, //根鍵TEXT("Commxi8251ParmsTcpIP"),

  //打開根鍵下的子鍵

  0, //預留值,必設為0

  0, //不支持此項,必設為0

  &hKey //最終打開鍵的句柄指針

  );

  RegSetValueEx( hKey, //對鍵操作的句柄

  TEXT("IpAddress"),//鍵中的數據項名

  0, //預留值,必設為0

  REG_GZ, //數據項中值的類型

  (CONST BYE*)((LPCTSTR)regData),//存有數據項值的緩沖區

  dwDataSize //值的字節數

  ); //對"IpAddress"數據項的值作修改,即改變IP值

  3.3.2 自動安裝功能的實現

  用FindWindows()函數判斷對話窗口的出現;用keybd_event()函數模擬鍵盤輸入。關鍵代碼如下:

  TCHAR g_szTitle[80]=TEXT("Unidentified PCCard Adapter"); //指定對話框的標題

  HWND hWnd=..FindWindows(NULL,g_szTitle); //判斷此標題名的窗口是否已出現,不論是否為前臺窗口

  if (hWnd! =NULL) //若窗口已出現

  {..SetForegroundWindows(hWnd); //將此窗口設置前臺窗口

  keybd_event(0x58,0,0,0); //按下x鍵

  keybd_event(0x58,0,KEYEVENTE_KEYUP,0); //抬起x鍵

  //完成了按下和抬起x鍵的兩個動作,就模擬了鍵盤輸入字符x.

  ............//用同樣的方法輸入 i825.dll

  keybd_event(0x0d,0,0,0);

  keybd_event(0x0d,0,KEYEVENTF_KEYUP,0); //最后輸入確認鍵

  }

  正確輸入后,可以看到無線網卡的顯示燈開始閃爍,說明網卡已經安裝成功,等待進行無線通信。

  3.3.3 程序流程的總體控制

  為了保證程序流程的順序,整個程序中還需要有一個總體監視控制的管理員。這種監控功能,可以通過發送接收特定消息給主控函數的方法,也可以采用等待特定事件對象的方法,還可以采用開定時器查詢的方法等。鑒于方法簡單,而且對系統資源占用并不大,這里選用了開定時器查詢的方法,并設置了標志位flag區分不同階段工作,進行相應的操作。下面列出部門關鍵代碼:

  flag=0; //最初標志位設為0,即先拷貝所需要文件

  m_nTimer=SetTimer(1,2000,NULL); //開啟定時器

  KillTimer(m_nTimer); //時間到,先關閉定時器,進行相應判斷和操作。

  3.3.4 應用程序封裝入系統

  上文已經講了將應用程序封裝入操作系統的一般方法,分為應用程序的拷貝和修改系統配置文件兩步。此項目最后要把開的應用程序monitor.exe打包封裝入操作系統。這里重點介紹一下系統中幾個配置文件的具體修改情況。

  (1) 在Platform.bib文件中的Files部門加入以下代碼

  其中,monitor.lnk為monitor.exe的鏈接程序(快捷方式),制作方法很簡單,可以通過一個ASCII碼編輯器編寫,格式為:#20.exe。

  此配置文件中的代碼表示,將monitor.exe和monitor.lnk加載到名為NK的內存區中(NK的定義在config.bib文件中的memory部分完成),文件的屬性為U(非壓縮文件),這樣就完成了把自己所開發的應用程序及其鏈接程序封裝進操作系統中的“聲明”。

  (2) 在Platform.dat文件中加入以下代碼:

  Directory ("):-File("monitor.lnk",“.lnk”)

  由于Platform.bib做過聲明,這兩個文件在操作系統啟動后會映射到目錄下,這是默認的目錄。所以此外的代碼表示在Windows CE啟動時會自動運行monitor.exe。

  做完了以上工作,再對操作系統進行編譯,把應用程序封裝到了Windows CE操作系統中,而且系統啟動后會運行此應用程序,完成自動安裝無線網卡的功能。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲伊人成综合成人网| 欧美整片在线观看| 精品女厕一区二区三区| 日本精品一区二区三区在线| 91av视频在线免费观看| 韩国福利视频一区| 欧美一区二区三区免费视| 成人精品久久一区二区三区| 欧美日韩亚洲国产一区| 欧美成人手机在线| 日韩av在线免费看| 国产玖玖精品视频| 日本成人激情视频| 国产一区二区日韩| 91系列在线播放| 国内外成人免费激情在线视频| 不卡av电影院| 自拍视频国产精品| 精品久久久久久久久国产字幕| 亚洲高清色综合| 黄色精品在线看| 欧美高清视频免费观看| 国内精品400部情侣激情| 国产综合福利在线| 精品视频久久久久久久| 亚洲天堂一区二区三区| 亚洲精品一区中文| 国产精品尤物福利片在线观看| 久久精品国产亚洲一区二区| 高清欧美性猛交xxxx黑人猛交| 狠狠躁夜夜躁久久躁别揉| 欧美黑人一级爽快片淫片高清| 日韩欧美国产成人| 中文字幕欧美精品日韩中文字幕| 国产精品久久久久久久久粉嫩av| 欧美猛少妇色xxxxx| 91国内免费在线视频| 国产在线播放不卡| 亚州国产精品久久久| 国产成人精品日本亚洲| 亚洲欧美www| 久久久国产一区二区三区| 91沈先生作品| 欧美猛交免费看| 久久福利视频网| 亚洲欧美激情另类校园| 亚洲人高潮女人毛茸茸| 亚洲国产一区二区三区四区| 国产欧美va欧美va香蕉在线| 成人网页在线免费观看| www.久久久久| 欧美日韩性视频| 久久精品影视伊人网| 亚洲男人天堂视频| 亚洲一区二区久久| 欧美性xxxxx极品娇小| 国产精品视频白浆免费视频| 九九精品在线播放| 久热在线中文字幕色999舞| 九九综合九九综合| 亚洲a级在线观看| 欧洲日本亚洲国产区| 国产精品三级久久久久久电影| 久久资源免费视频| 国自产精品手机在线观看视频| 91爱视频在线| 国产美女搞久久| 成人在线播放av| 国产一区二区三区中文| 欧美成aaa人片在线观看蜜臀| 国产丝袜一区二区三区| 亚洲国产天堂网精品网站| 国产精品网站视频| 国产97在线|亚洲| 2019最新中文字幕| 欧美激情精品久久久久久大尺度| 日韩电影在线观看免费| 黄网站色欧美视频| 亚洲xxxxx电影| 久久久久久一区二区三区| 亚洲大尺度美女在线| 日韩一区二区三区国产| 国产欧美精品一区二区三区-老狼| 国产一区av在线| 91av成人在线| 成人黄色免费在线观看| 激情久久av一区av二区av三区| 亚洲伊人成综合成人网| 久久精品久久久久久| 精品亚洲aⅴ在线观看| 久久久久久999| 亚洲成色777777在线观看影院| 国产69精品久久久久9999| 夜夜嗨av色一区二区不卡| 久久人91精品久久久久久不卡| 91精品国产综合久久香蕉的用户体验| 日韩精品在线观看网站| 中文字幕亚洲欧美一区二区三区| 亚洲精品视频在线观看视频| 精品女同一区二区三区在线播放| 欧美激情综合色| 亚洲 日韩 国产第一| 欧美色videos| 超薄丝袜一区二区| 国产91精品青草社区| 欧美性猛交xxxx偷拍洗澡| 亚洲一区美女视频在线观看免费| 疯狂欧美牲乱大交777| 国产亚洲精品久久久| 97人人做人人爱| 午夜免费在线观看精品视频| 色偷偷亚洲男人天堂| 国产精品黄色av| 国产精品高潮粉嫩av| 国产精品久久国产精品99gif| 亚洲精品久久久久| 国产精品视频网址| 国产欧美欧洲在线观看| 国产成人拍精品视频午夜网站| 青青久久av北条麻妃海外网| 日韩小视频在线| 这里只有精品久久| 97碰在线观看| 午夜精品久久久99热福利| 亚洲久久久久久久久久久| 91精品在线国产| 亚洲午夜精品久久久久久性色| 成人97在线观看视频| 欧美在线观看一区二区三区| 伊人亚洲福利一区二区三区| 国产精品一区二区av影院萌芽| 45www国产精品网站| 国产成人精品在线观看| 国产精品一香蕉国产线看观看| 91精品国产沙发| 成人午夜黄色影院| 亚洲欧洲国产伦综合| 国产精品视频网址| 91国内精品久久| 欧美一级电影免费在线观看| 国产成人精品日本亚洲专区61| 欧美男插女视频| 国产精品678| 中国人与牲禽动交精品| 日韩av电影在线网| 国内外成人免费激情在线视频网站| 国产精品久久久久久久久男| 亚洲一区二区三区久久| 2019中文字幕在线| 色综合久久精品亚洲国产| 久久久久久久久久av| 日本欧美在线视频| 国产91成人video| 亚洲色图偷窥自拍| 精品国产欧美一区二区三区成人| 最近2019中文字幕第三页视频| 国产精品6699| 一区二区三欧美| 欧美成人免费网| 亚洲成人激情在线| 久久久久久尹人网香蕉| 国产亚洲精品久久久久久777| 夜夜躁日日躁狠狠久久88av| 色妞色视频一区二区三区四区|