會員登入 新使用者?立即註冊

學無止境--- 無論是電子技術或是以外的領域---溫故知新,精益求精。還有賈老師的作品,可以讓我這個充滿科技,較生硬的部落格有一點人文的氣息!---- 賈老師的真老公! -- -

關閉
你好,歡迎參觀ChamberPlus的部落格! 我要留言

USB DIY-- 自學計畫(二)

分類:USB DIY
2008/11/26 00:22

好吧,我們接下來就實際把原廠所附的USB原始程式給跑起來,

然後實際的操作一遍。....以利我們觀察一下結果。

原則上,我們都不對原廠所附的程式作任何修改,直接組譯下載。

結果呢,我們可以很快到的看到在電腦裝置裡,出現該USB 裝置。

(圖)

我們用的USB 驅動程式也是原廠所給的....不過呢?!原廠也有附上

驅動程式的原始碼,可以供使用者自行修改之。

只不過,使用者要有Window XP DDK 2600 ,才能完成組譯。

我把他所附的驅動程式組譯之後,竟然發現兩者之間的程式大小不一樣!!

先不管了...我們還是先採用原廠的驅動程式...

-----------------
當我們看到電腦出現USB 裝置時,一般的初學者,都會有一股小小的成就感,

覺得好像學USB 就是這麼簡單嘛!....我也會了....

這好像一般時下一些菜鳥工程師常犯的毛病,大陸工程師也是如此,

只不過,寫過一兩個程式,或是向這般跑一次範例程式,就到處炫耀跟別人說:

USB 這種東西很簡單啊... 我也做過....就是怎樣?怎樣的簡單啊....)

但事實真的如此嗎?!....我們把原廠所給的韌體程式所產生的Enumeration過程給抓下來看:

(圖)

乖乖....我們這種老鳥明眼人一看就發現不對勁?!

不對...缺一個ACK Token ...這鐵定有問題,跟您們說:別想騙Microsoft 的OS...

雖然微軟的OS常讓別人罵爽的...但是您也別想呼籠他...

這個原廠的韌體在回 Enumeration 是不對的....否則 OS 不可能不回ACK 的!

再仔細一看:人家系統USB 明明要 0x0A 個Bytes 資料,

USB 韌體竟然回個 32 Bytes ....而且還是亂碼....太離譜了!

雖然外表好像煞有其事的正常顯示出USB 裝置...但不代表您的USB 韌體是對的 !

夠詭異吧 ....這是要玩USB 要先有的心理建設,您不要以為原廠給的東西就是對的!

因為原廠的工程師也是人啊...也有菜鳥工程師啊...也有摸魚打混的人啊!

我們就查了一下:這個Setup Token 是要Device Description中的 Device Qualifier 。

這是USB 2.0 才有的東西 ...USB 1.1 沒有支持這個東西 。

但人家微軟的作業系統一定很清楚是USB 1.1 或是2.0 的東西 ...

人家OS 會來問,一定是USB 韌體本身自己搞的鬼....

往USB Enumeration前面一點看: 果然不錯...自己在USB 的宣告中:自稱USB 2.0 。

(圖)

這叫白癡啊...明明自己韌體程式不支援USB 2.0 的這個命令,

自己還擺爛的回人家說自己是 USB 2.0 !這不是找罪受?!耍白癡嗎?!

這果然跟我們台灣政治人物一般...只是喊爽的而已...又不是真正的 USB 2.0 !

又再一次的證明版主常掛在嘴邊的一句話:不是最好,最快的就是好東西!

只有適合自己用的,才是好東西---才更能凸顯自己的價值啊 !

(像我們這老鳥工程師們平時打屁時說的:在硬體設計時,

所有的元器件都用最好,最貴的...做出來的東西跟人家說自己多會設計電路...

我們常開玩笑說:他應該生在美國,長在美國才對啊! ...這樣的東西有什麼好炫耀的!)

----
好吧 ...我們就原廠的程式把他修改宣告為 USB 1.1 後,再試一次!

(圖)

從上圖中我們發現我們已經回USB 1.1了 !

我再看一次相關的 USB Enumeration 過程.....

(圖)

看到沒?!...漂漂亮亮的完成 USB Get Device Description...

再 Set Configuration....完成整個USB Enumeration 。

完美的Touch-down !--- USB 2.0 有什麼用?!錯的啦...

人家USB1.1 雖然笨一點,老一點...但人家微軟給一百分滿分啊...

------
沒想到,才一開始想用原廠的 程式來修改USB 的應用程式,竟然一開始就發生這種烏龍事件。

當然啊...如果是您呢?!...只要電腦Show出您的 USB 裝置時,

您就高興的非常有成就感?!....您在被陷害您不知道而已. !

等下回人家微軟嚴謹的抓您的USB Bug 時,您該不會一句說:不會啊!

以前我都用得很順利啊...怎麼會有問題呢?!這是一些工程師常慣用的藉口啊

您我捫心自問....我們真的有真正的去面對這種類似的問題嗎?! ...我們真的很有用心的去學習嗎?!

這真的需要花您好幾天的時間嗎?!....而您卻想百般的逃避與不想面對他?!...

這真的不是學技術好的態度的....

-----
接下來呢?!...很不幸的,我RUN 原廠的應用程式,來實際 USB Bulk In/Out...

答案想當然爾---- 也是不對的啦....唉...這到底我比較賤手呢?!

還是真的原廠也是在耍白癡嗎?!...要讓學習者從抓他們的Bug 來學習嗎?!

雖然學技術,是從抓Bug 基礎扎根起來的....這的確是不諱言的。

但看樣子...接下來還有得玩呢!....

(待續)






 

上一篇 下一篇
回應(1)
引用(0)
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28  

文章分類

統計資料

  • 今日人數:244
  • 累計人數:135102
  • 發表文章:342
  • 相片數量:14
  • 回應數量:364

更新日期

2010/02/06 10:58

喜憨兒公益頻道

雅虎資訊 版權所有 © 2009 Yahoo! Taiwan All Rights Reserved
「本服務設有管理員」 服務條款 隱私權政策