ChamberPlus System Level Studio

  首頁 | Contact to us

 

News
Products
FAQ
Technicality
Links
OldNews

互動區:

留下您的足跡

想討論嗎?

 

Q: 有關於 USB INF 檔案的描述。

A: 其實,與其說是 Q&A ,倒不說是版主在USB ROM Emulator 產品上的一個小瑕疵的解法的說明。但嚴格說,也不能說是Bug ,因為反正只要碰到微軟的作業系統,總是會有一些水土不服的現象,這種結果也不是一天兩天的事。也已經是老掉牙,不是新鮮事的故事。

    寫USB 的東西,除了寫寫 USB Firmware 及應用程式(含驅動程式),最好還是寫的自動安裝程式。就是光碟片一放進光碟機,一切就自動的依序幫客戶安裝相關軟體及驅動程式。而且還可以自動卸載。至於卸載的手動方式,版主在另一篇USB_DIY 也有稍微描述過。作USB的產品,到底要不要用標準的驅動程式?這一點版主想怎麼說破嘴也不會有任何結論的。反正,客戶喜歡怎麼用或是否接受?是比較重要吧。但可以肯定的是:以現在的應用程式來說:一定要有軟體自動安裝功能

        所以,不要以為會寫USB Firmware 或應用程式(若您還能寫驅動程式,算是很厲害了囉)就可以作一些USB DIY產品了。因為您還是得寫個自動安裝程式。當初,版主也不之如何下手。許多技術損友又七嘴八舌說:簡單嘛,安裝個InstallShield,寫個小程式就可以了!哈∼哈∼每個人都用嘴吧作最快啊!若進一步問他們說:怎麼寫呢?!那又是您家的事了!唉∼所以,版主才說是:損友嘛。

        這部分改天再來教大家寫。還是先就主題說明一下這個Q&A。

要寫自動安裝程式,這個USB 驅動程式的INF 的重要性就很重要了。若您一切都想省事、事省。那您就失去許多瞭解事物真相的機會了。

版主就先把版主的USB ROM Emulator 的 INF 檔簡略的列於下方:

[Version]
Signature=$CHICAGO$
Class=USB
Provider=%ChipwareSWTeam%
LayoutFile=layout.inf, layout1.inf, layout2.inf
DriverVer=09/16/2004,1.10.00.1010

[ClassInstall]

[DestinationDirs]
TP68xx.Files.Ext=10,System32\Drivers
TP68xx.Files.Inf=10,INF

[Manufacturer]
%ChipwareHWTeam%=ChipwareHW

[ChipwareHW]
%ChipwareICNameVID0797PID6801%=TP68xx.Dev,USB\VID_0797&PID_6801
%ChipwareICNameVID0797PID6802%=TP68xx.Dev,USB\VID_0797&PID_6802
%ChipwareICNameVID0797PID6803%=TP68xx.Dev,USB\VID_0797&PID_6803
%ChipwareICNameVID0797PID6816%=TP68xx.Dev,USB\VID_0797&PID_6816
%ChipwareICNameVID0797PID6826%=TP68xx.Dev,USB\VID_0797&PID_6826
%ChipwareICNameVID055fPID0210%=TP68xx.Dev,USB\VID_055f&PID_0210
%ChipwareICNameVID055fPID021E%=TP68xx.Dev,USB\VID_055f&PID_021E
%ChipwareICNameVID055fPID021F%=TP68xx.Dev,USB\VID_055f&PID_021F

[TP68xx.Dev]
CopyFiles=TP68xx.Files.Ext,TP68xx.Files.Inf
AddReg=TP68xx.AddReg

[TP68xx.Files.Ext]
;;TP68xx.SYS

[TP68xx.Files.Inf]
;;TP68xx.INF

[TP68xx.AddReg]

...

...

      若有寫USB 驅動程式的人,對於這個檔案內容應該都不陌生。版主有省略一些後面的內容,因為精彩的是在前面。

        首先是一開始那的藍色粗體字:Class=USB ,所代表就是一般USB 裝置,您若寫成 HID 的話,就沒有故事可以寫了,因為是標準的驅動程式。

        版主發現一件很好玩的事是:後面兩行紅色的字的描述!這件『靈異』故事可不是七月半的故事,卻是活生生的發生在 Microsoft XP SP2 上。版主當初為何要把這兩行給註釋掉?!因為,您若不註釋掉的話,當您寫自動安裝程式時,把這個INF 檔複製到作業系統的INF 目錄下時。當您安裝完成後,把您USB 裝置插入 PC 時,神奇的事情發生了:作業系統竟然找不到此裝置的驅動程式擺放的目錄。要USER還要手動指向安裝目錄一下。譁∼那我還幹嘛寫自動安裝程式啊!所以,版主努力的反覆測試幾次後,發現,只要把這兩行註釋調就可以了!

        唉∼故事若這麼簡單可以解決的話,微軟就不叫 Microsoft 了!當您把這兩行拿掉的話,又變成手動安裝驅動程式時,作業系統也找不到這一個USB 裝置的驅動程式!!啊∼啊∼∼微軟是存心要玩死我們似的!

        怎麼會這樣呢?!自動安裝驅動程式與手動安裝驅動程式竟然在XP SP2 是不一樣的結果耶!!

.@#$%....

        怎麼解?!唉∼就挖東牆補西牆!這是解微軟作業系統相容性的最佳解法!大家不要笑。這是版主問了幾個軟體工程師後,大家比較能接受的作法:因為誰哪來這麼多時間,搞清楚微軟在做什麼啊!每天解BUG,解的累得像一隻死豬一樣。反正能解,就是標準答案。要不然,您自己寫信去問微軟∼看人家要不要理您!(後來,版主也發現這些無論寫驅動程式的或是寫應用程式的∼每個都似乎有罹患一種『被微軟迫害妄想症』~真的都好可憐喔!)

        答案就是:自動安裝的驅動程式,記得把上述兩行給註釋掉。若是要留給客戶手動安裝驅動程式的,就請把這兩行的註釋放開!

        為什麼?!不知道!若有仁人君子,知道原因的,是否可以來個MAIL教一下吧!

謝謝!   

 

首頁 | News | Products | FAQ | Technicality | Links | OldNews

Telephone : 886-3-5439918    FAX : 886-3-5437632

Copyright(C) 2005 . ChamberPlus System Level Studio All rights reserved.  Last Update: 2008年01月18日。