我的第乙個WINCE驅動

2021-08-22 18:24:05 字數 3044 閱讀 6880

早在兩年前就開始做wince

應用程式了,但是由於分工的原因,一直以來都沒有機會深入了解wince

驅動層面的開發(包含pb

相關的系統定製)。要不是前段時間馬寧安排了fakegps

開發工作,真不知道什麼時候才能了解wince

驅動開發。

fakegps

從字面理解就是偽裝的gps

,也就是說,開啟的乙個串列埠實際上並沒有連線gps

裝置,但是相關應用程式卻能從這個串列埠中獲取gps

定位資訊(當然這個資訊是偽造的了)。

我最初的思路是做兩個串列埠驅動程式,乙個串列埠是就是gps

應用程式使用的串列埠,另個乙個串列埠與這個串列埠建立乙個軟通道,通過乙個專門的應用程式向這個串列埠傳送gps

相關定位資訊,同時gps

串列埠就能接收到這些資料。後來在馬寧的提示下,還是覺得通過共享記憶體互動資料更好,所以最終的方案選擇的是共享記憶體的方法。

根據我個人的體驗,編寫具體的驅動程式只要有c

語言功底,應該是不難的。但是要把寫好的驅動程式放在什麼地方,需要設定什麼引數等等,就不是短時間就能掌握和了解的了。這一方面幸好看了唐勉的blog

下面就把我開發這個驅動的步驟詳細說一下: 1

、驅動**編寫(fakegps .c)

由於我把驅動整合在模擬器中,所以原始碼存放的路徑,我選擇的是./wince600/platform

目錄下,具體路徑,如下圖:

驅動的**(標準流式驅動)這裡暫略,在介紹fakegps

具體實現的時候在詳細說明。

驅動相關**編寫完畢後,在該項目的選項上單擊右鍵,選擇build

選項即可編譯該程式為dll

檔案(如下圖)。

注:在/win

目錄下建立fakegps

時,注意要修改該目錄下的dirs

檔案,在結尾新增一句「fakegps /」

2、def檔案

檔名:fakegps.def

(和fakegps .c

同乙個目錄)

library fakegps

exports com_init

com_deinit

com_open

com_close

com_read

com_write

com_seek

com_iocontrol

com_powerdown

com_powerup

3、makefile檔案

就下面一句

!include $(_makeenvroot)/makefile.def

4、sources檔案

內容如下:

targetname=fakegps

targettype=dynlink

releasetype=platform

targetlibs=$(_commonsdkroot)/lib/$(_cpuindpath)/coredll.lib

deffile=fakegps.def

preprocessdeffile=1

dllentry=dllentry

includes=../../inc

sources=fakegps.c

5、修改platform.reg

檔案(登錄檔選項)

platform.reg

檔案在/wince600/platform/deviceemulator/files

目錄下

開啟該檔案,新增如下內容:

[hkey_local_machine/drivers/builtin/fakegps]

"prefix"="com"

"dll"="fakegps.dll"

"index"=dword:8

"order"=dword:0

"friendlyname"="yefan fakegps"

6、修改platform.bib

檔案(把dll

檔案整合到nk中)

platform.bib

檔案在/wince600/platform/deviceemulator/files

目錄下

開啟該檔案,新增如下內容:

fakegps.dll $(_flatreleasedir)/fakegps.dll nk shk

7、修改deviceemulator.pbcxml檔案

deviceemulator.pbcxml

檔案在/wince600/platform/deviceemulator/catalog

目錄下 在

item:yf:fakegps:deviceemulator

在< catalogfile >

中新增如下內容:

fakegps

fakegps driver

bspspecific

#ms:deviceemulator:devicedrivers:location

$(_winceroot)/platform/deviceemulator/src/drivers/fakegps

$(_winceroot)/platform/deviceemulator/src/drivers/fakegps

注:千萬不要用vs2005

整合環境編輯pbcxml

檔案,我就是用該環境把pbcxml

檔案搞壞了,最後新建工程時,連模擬器選項都沒有了。

最後的結果一覽:

驅動**及相關測試程式的**,待詳細講解fakegps的時候在一一說明。

我的第乙個WINCE驅動

早在兩年前就開始做wince應用程式了,但是由於分工的原因,一直以來都沒有機會深入了解wince 驅動層面的開發 包含pb相關的系統定製 要不是前段時間馬寧安排了fakegps開發工作,真不知道什麼時候才能了解wince驅動開發。fakegps從字面理解就是偽裝的gps,也就是說,開啟的乙個串列埠實...

我的第乙個WINCE驅動

早在兩年前就開始做wince應用程式了,但是由於分工的原因,一直以來都沒有機會深入了解wince 驅動層面的開發 包含pb相關的系統定製 要不是前段時間馬寧安排了fakegps開發工作,真不知道什麼時候才能了解wince驅動開發。fakegps從字面理解就是偽裝的gps,也就是說,開啟的乙個串列埠實...

我的第乙個驅動程式

arm編譯器版本 3.32 核心版本 2.6.28.7 arm號 s3c2440 驅動原始碼 include include include include include include include include define device name leds define led majo...