USB裝置驅動程式導讀(8)

        帶著上次留下的疑問,我們繼續來學習作業系統如何通過USBDISK讀寫USB裝置的。我們先看USB/CLASS/STORAGE/DISK/SCSI2/usbdisk6.def檔案。在這個檔案中可以看到,該DLL一共匯出了14個函數,其中兩個是上次內容當中被裝置驅動程式調用的UsbDiskAttach和UsbDiskDetach,餘下的是一組以DSK開頭的流驅動介面,易見,USBDISK是以流驅動的形式向作業系統提供服務的。       

WinCE 5.0邊做邊學(5)

    對於即時系統,如何調試是一個很難解決的問題,包括對系統核心的調試,對驅動程式的調試,對應用程式的調試等。對於應用程式,通常各整合式開發環境都提供了常規的單步跟蹤等調試手段。而對於另兩個的調試,Platform Builder除了為我們提供了常規的斷點跟蹤等手段以外,還和系統的來源程式配合使用了一種新的調試手段——Debug Zones調試區。   

USB裝置驅動程式導讀(9)

        以Bot.c檔案中的BOT_DataTransfer()函數為例,在這個函數中,讀寫操作全部是調用了IssueBulkTransfer()函數,這個函數是由USBD提供的介面並且被usbclient.c程式進行了再次封裝,它可以完成對物理USB裝置的資料存取操作,這就要根據不同的裝置來進行了,而且還要區分是命令操作還是資料操作,是命令狀態操作還是其他動作等等,需要與裝置及USB標準來對應。因為只是學習一個架構,所以有興趣的話可以深入研究一下。       

WinCE 5.0邊做邊學(2)

作者: 文斌首頁: 文斌程式網  http://www.wenbinweb.com    繼續我們的邊做邊學,上次我們第一次用PlatformBuilder這個環境做了一個Internet Appliance的平台,我們也在模擬器上看到了這個平台的運行結果,這次,我們在此基礎上做些修改,以實現我自己的需求。   

WinCE 5.0邊做邊學(6)

    在學習驅動程式之前,我們還有很多東西要瞭解。想來想去,可能最重要的還是中斷了,所以,這次我們花點時間來瞭解一下在Windows CE中的中斷機制。    凡是學過電腦原理的人都知道中斷是什麼東西,所以這些基本知識我們就不再詳述了,我們下面就先看一下CE對中斷的整體處理流程,以方便從全域上有個整體的認識。    是CE中中斷處理的流程圖示     我們分布來解釋中的流程:    1、硬體裝置向Kernel發送中斷異常的代碼,如果檢測到這個中斷異常,就會被Kernel層的異常處理所截獲;  

WinCE實驗教程之二整合式開發環境

作者:文斌來源:文斌程式網 http://www.wenbinweb.com        為了定製CE作業系統,微軟公司為我們提供了Platform Builder(簡稱PB,但與Power Builder的資料庫開發工具截然不同)的整合式開發環境,下面我們就來認識一下這個開發環境並利用它產生一個CE作業系統。       

WinCE 5.0邊做邊學(3)

作者: 文斌首頁: 文斌程式網 http://www.wenbinweb.com  

WinCE實驗教程之三檔案夾結構

作者:文斌來源:文斌程式網 http://www.wenbinweb.com        這裡所述的檔案夾結構,不是WinCE系統的檔案夾結構,而是整合式開發環境Platform Builder的檔案夾結構,該檔案夾結構十分複雜,共有3萬多個檔案,2400多個子檔案夾,如果不清楚的話在以後的開發過程當中將會帶來很大的麻煩,也時甚至會發生找不到檔案的現象。對於這個檔案夾結構,我們可以大體上分成兩個部分,一個是PB的安裝資料夾,一個是CE檔案夾,下面我們就分別來瞭解一下。       

WinCE 5.0邊做邊學(7)

     上次寫過關於CE的中斷處理機制以後,一直有人要求能以實際的程式體現出來,但是出於各種因素,一直未能成文。在此表示歉意,此次我們就一起來分析驅動程式中的一種,然後順便看一下中斷在驅動程式中的體現,對WIN32底層的核心對象不熟的話,可要先補一補這方面的知識哦。   

WinCE 5.0邊做邊學(4)

作者: 文斌首頁: 文斌程式網 http://www.wenbinweb.com    經過以前的學習,我們已經掌握了產生CE的過程及編譯的幾個階段,這次我們再來瞭解一下Platform Builder中為我們提供的組件包的管理方式以及如何管理自己的組件。     在Platform

WinCE實驗教程之五進階調試

作者:文斌來源:文斌程式網 http://www.wenbinweb.com        回顧一下我們以前學過的內容,我們學習了嵌入式系統的基本概念,學習了如何定製一個作業系統,還學習了如何引導一個CE作業系統。這次我們來學習CE系統的進階調試技術,主要是利用PB的整合式開發環境來調試作業系統的核心和裝置驅動程式。        

WinCE 5.0邊做邊學(8)

    在上次的邊做邊學中,我們瞭解到了內建的裝置驅動程式的架構,因為各種不同類別的內建驅動程式要實現不同的介面,因此在實現起來就非常有針對性,也不利於示範。這次我們繼續瞭解另一種驅動程式——流介面驅動程式的特點及其實現方法。   

WinCE實驗教程之四引導

好了,以上我們已經產生了自己的系統,也明了了PB的檔案夾結構,這一次我們一起來看一下如何把我們自己的系統在目標裝置上運行起來,此處我們的目標裝置是X86結構的,因此我們就以這種裝置為例,當然如果你沒有自己的硬體平台,也可以用另一台PC機來代替。按以前學過的內容,我們還是用Hello這個系統,但是要重新做一個了,因為上一次我們做的那個是在模擬器上用的,這次我們要做一個用在裝置上的,我們可以在嚮導中選擇CEPC來做,當然我們也可以同時選中CEPC和EMULATOR,這樣就既可以在CEPC裝置上使用,

設計模式15問

 設計模式是什嗎?  優秀的設計範例  從優秀設計方案中發現和總結出來的經驗  在實踐中反覆出現的設計問題的優秀解決方案  設計和開發人員相互交流的基本術語設計模式不是什嗎?  物件導向設計的架構  可供簡單組合的積木式的設計元件  新發明的創新思路和方法  解決物件導向設計問題的完整方案我想學習設計模式,需要具備什麼基礎呢?  一門物件導向的程式設計語言  一些物件導向的基本概念  一些基礎的UML類圖知識那麼多模式,我連名字都記不住,怎麼學?  模式命名的目的是交流 

WinCE 5.0邊做邊學(1)

作者: 文斌首頁: 文斌程式網 http://www.wenbinweb.com    從微軟公司寄來了我定購的免費光碟片,讓我很興奮,裡面我要了一份WINCE5的評估版,還要了一份Windows XP Embedded的評估版, 於是馬上著手準備測試環境,開始我了對新版WinCE的學習之旅。    既然都是新學,我就想到要把我的學習過程記錄下來,這樣就可以讓更多還沒有使用WINCE5的朋友先睹為快了,好,有想法就要有行動,就不如起個名字叫WinCE5邊做邊學吧,怎麼樣,準備好了嗎?Ready?

使用DirectShow播放AMR檔案

         AMR全稱Adaptive Multi-Rate,自適應多速率編碼,主要用於行動裝置的音頻,壓縮比比較大,但相對其他的壓縮格式品質比較差,由於多用於人聲,通話,效果還是很不錯的。其具體的檔案格式可以參考其他文章或RFC3267 RTP Payload Format for AMR and AMR-WB      

捐款捐血,以盡綿薄

   

用戶端與伺服器協同開發中的自測

        用戶端與伺服器協同開發的軟體,通常是確定好通訊協定後由雙方各自開發,到某個時間點進行聯合調試這樣一個過程。因此,時常有進行聯調時發現問題互相推脫的現象,為了減少或避免這種情況發生對項目進度/品質造成影響,必須強調開發階段自測的重要性,並對此進行制度化,正常化。        

USB裝置驅動程式導讀(7)

        我們來看程式的第4行,這裡有一個判斷語句,它是在判斷插入的裝置是否是USBMSC_INTERFACE_CLASS類型的,這個常量是在usbmsc.h檔案中定義的,也就是說如果裝置不是USB存放裝置,那麼就結束這個函數,也就是此驅動只能處理USB存放裝置。        當發現裝置符合此驅動程式的要求後,就通過函數ParseUsbDescriptors()來解析這個裝置,這個函數在下面的程式中將被實現,我們可以看一下該函數的函數體,很顯然,它是在為裝置進行各種配置,這就不多說它了。

在代碼重構中蛻變

這幾天,要對我半年前寫的代碼進行一些整理工作,在看代碼時發現當時有很多地方寫得不夠好,俗稱的有“壞味道”,呵呵,重構,必須的。 幾年前通讀過《重構,改善既有代碼的設計》一書,雖然對各種重構模式或方法記憶有限,但精髓還是記住了:改代碼而不改變軟體的外在表現,循序漸進。 其實,重構是一個開發人員的基本工作內容,是在每天的開發過程中都要用到的。離開了重構和測試,代碼品質是難有保障的。有人會說沒有用到重構,其實最簡單的例子,當你發現一個類中有幾處用到了相同的代碼,你把這幾行代碼提取到了一個私人函數中以供

總頁數: 61357 1 .... 12881 12882 12883 12884 12885 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.