其實要說完結篇也是有點牽強啦~
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...車窗緊閉....
塞吧...塞吧...塞吧... 您塞到明天或便秘...也不關我的事....
....
作工程師最有成就感的時候也是這時候!...
祝福大家...尤其是幹工程師的您!
您好,就小弟所認知,不認得的Setup token本來就要回Stall給Host,且這部份是韌體開發人員可以handle的,而設計USB IP的廠商一定會知道要有STALL的功能,因為這跟ACK NAK是同樣地位的
回覆刪除樓上說的沒錯, 但有時韌體工程師總會忘記擋一些命令.
回覆刪除Chamber兄可不可以把bad command列出來參考一下!! Thanks.
Kevin123