2007年4月20日 星期五

USB 相容性問題(VISTA) -- 完結篇


 其實要說完結篇也是有點牽強啦~

USB的相容性問題哪有解完的一天呢?! 明天又如何?!Who know ?

(其實,才剛幫老客戶解完VISTA的問題後,又有一個Embedded system 的USB問題!)

...

還是把這個VISTA 惱人的問題作個結論吧。

在微軟的作業系統上,自從XP 開始,要安裝到作業中,是要通過微軟的認證的,

否則,會出現以下的圖框:

有沒有看到:『...硬體廠商索取已通過 Windows 標誌測試的軟體』...

大家若在台灣想靠寫軟體賺大錢是很難的。

但微軟卻很厲害的叫台灣這些作硬體的廠商,交錢給他的!

測這個LOGO 微軟也根本無須出動任何人員或Resource  的...

自己去下載平台,自己回家測...測完了透過網路交報告,...還要記得交錢....

微軟就會通知您了....這一切『收錢』全部自動化。....

------

版主,自己作的USB的東西,也沒去測....很簡單...沒錢!

沒測會怎樣?!....就是上面那張圖啊!... 不要笑...如果您有用過Microchip 的 ICD 2...

哈~哈~他也有這張圖.... 版主總沒有Microchip 大吧!

-----

不過,『據說』VISTA 出線的圖示是帶紅色的警示效果...嚴重的警告您『交錢』....

所以,客戶救被要求測USB LOGO了....就有了這個故事。

----

其實,答案很簡單.... 微軟在VISTA USB LOGO 的測試平台中,

故意下了三個USB Chapter 9 沒有定義的Command !

微軟還故意講得很好聽叫做:Bad Descriptor test 及Bad Feature Test....

(不是說三個嗎?... 哈~他的Bad Feature 包括了Bad Clear feature 及Bad Set Feature ...)

 ---

 版主在想:也只有微軟才吃飽太閒,才會下錯誤Command 啊~

或是,他們擔心他們的作業系統不穩?! ....

要不然,這種意料之外的東西,哪考慮的作得完啦....

他今天高興給您來一個...明天缺錢又給您下個出乎大家意料外的Command ...

光解這些奇奇怪怪的命令,程式哪夠寫啦!?

版主不是有講過一句USB 名言嗎:規格書上寫的一定是對的...沒寫的不代表他錯啊

所以,只有先東牆補西牆的把問題給解了!

以後呢?!就看微軟或比爾蓋茲的財務狀況吧.....

------

在這裡就稍微說明一下,碰到這種 Chapter 9 所沒定義的Command 該如何?!

其實,如果您有做過 隨身碟的MSDC 的話,

一定也碰過所謂BOT(Bulk Only Transfer )中有錯誤的   command ...

就是因為MSDC 是結合了抽取式硬碟(SCSI)及傳統軟碟機的命令(UFI) ...

所以,作業系統會下一個很奇怪的軟碟指令.....給您的隨身碟...這個就是錯誤命令!

因為您怎麼回答都不對...(應該說:您連回答都不行咧!)...

就直接把這個命令給『做掉』....答案就是回Endpoint 的 STALL...

只是不同的是 BOT 是Stall Bulk 的endpoint ;

而USB Chapter 9 的Command 是要 STALL Endpoint 0 的!....

而這個STALL命令....呵~呵.....他不屬於USB  Chapter 9 的!

他是屬於關於硬體的Chapter 8 ....所以,如果您的 USB Controller 硬體沒有支援的話 ....

這個問題,您就沒解了!....您就可以東西收一收準備換工作了!

......

雖然大家看版主在這裡輕輕鬆鬆的在這裡解釋這個問題與解法....

其實,就在客戶那....像隨堂抽考一樣...當場要作答,而且要保證答對 ....

這種壓力,版主想這就是想幹工程師最不幸的時候!....

----

不過還是在太陽下山前給解決了.... 離開台北時,雖然剛好碰上下班塞車時段...

但心情上卻是一副如釋重負般....開著車上的空調與CD...車窗緊閉....

塞吧...塞吧...塞吧...   您塞到明天或便秘...也不關我的事....

....

作工程師最有成就感的時候也是這時候!...

祝福大家...尤其是幹工程師的您!

2 則留言:

  1. 您好,就小弟所認知,不認得的Setup token本來就要回Stall給Host,且這部份是韌體開發人員可以handle的,而設計USB IP的廠商一定會知道要有STALL的功能,因為這跟ACK NAK是同樣地位的

    回覆刪除
  2. 樓上說的沒錯, 但有時韌體工程師總會忘記擋一些命令.
    Chamber兄可不可以把bad command列出來參考一下!! Thanks.
    Kevin123

    回覆刪除