和菜鳥一起學linux之雙向鏈表list head的簡單一實例

       經常在linux核心中看到list head這個鏈表頭,有時候看著也不是很懂,很早就打算拎出來好好理解理解了。這次趁著編寫SDK後有點小空閑,就拿出來晒晒吧。       簡單的鏈表實現#include <stdio.h>#include <stdlib.h>#include <string.h>struct list_head{ struct list_head *next, *prev;}; #define

和菜鳥一起學linux核心源碼之啟動篇

     

和菜鳥一起學linux匯流排驅動之初識USB

    現在什麼東西都用上了USB了,聽著名字覺得怪怪的,拆開來看看,U,SB,貌似是罵人的話了,開個玩笑。不過這個傢伙確實給我們帶來很多的方便啊,什麼USB滑鼠啊,隨身碟啊,USB wifi啊,USB網路攝影機啊,什麼電子裝置都貌似可以用USB來替換掉,足見這個東西的好處和通用了。不過一直都不是很清楚這個東西,上次公司讓做USB的device裝置,由於硬體的匯流排有問題,從而沒有繼續下去,只是簡單地看了下協議和驅動,真是有種萬花叢中過,片葉不沾身呢。最近又關注了下USB,把自己看的總結下吧。 

和菜鳥一起學linux匯流排驅動之初識spi匯流排協議

       還記得第一次用spi裝置的時候是大三暑假了,那時和隊友一起買了無線模組,然後用單片機來無線傳輸,不過代碼都不是自己寫的,雖然實現了這個功能,但是當時還不知道什麼spi的。大四了,學弟問我怎麼用spi flash,頓感慚愧。後來他送我了一塊flash,然後我用51參考網上的實現了下,才知道有這麼個東西。之後公司裡也漸漸用了些spi的裝置,flash,codec,ads7843等,漸漸地也熟悉了這個東東。       其實,匯流排協議只是為了減少io口,人為定義的。我們也可以定義協議,

和菜鳥一起學linux匯流排驅動之初識USB裝置描述符

       耳邊依舊是單曲迴圈,不知何時開始,音樂開始觸動於我。一直以來,聽歌都是只享受其中的旋律,而慢慢地,歌詞很多事情讓我微微一顫的感覺。繼續迴圈著,繼續這種微妙的感覺。       吃完飯了,那就繼續USB吧,接下來那便是USB的裝置描述符了。      

和菜鳥一起學linux匯流排驅動之初識USB系統結構

       上一篇文章中,對於USB是什麼東東,想必都清楚了,她的串連方法也清楚了,那麼接著學習下USB的系統結構吧。先看一下系統的拓撲結構吧。       主機host控制器和一個根hub,然後下面可以接很多的裝置,也可以繼續接hub,然後hub下面還可以接裝置,接下一個hub,一直往下。對於USB匯流排,最多隻能接127個裝置。       USB的主控制器主要負責處理主機和裝置之間的電氣和協議層的互聯。主要有OHCI、UHCI(usb1.0)、HCI(usb2.0)。      

和菜鳥一起學linux匯流排驅動之初識spi驅動主要結構

       既然知道了協議了,那麼就可以開始去瞧瞧linux kenerl中的spi的驅動代碼了,代碼中有很多的結構體,還是對主要的結構體先做個瞭解吧,那樣才可以很好的理解驅動。主要是include/linux/spi.h 首先是SPI的主機和從機通訊介面,也就是SPI匯流排,extern struct bus_type spi_bus_type; bus_type定義在linux/device.h中 struct bus_type { const char

和菜鳥一起學linux匯流排驅動之初識USB的資料轉送方式

       周末又快要過去了,一周又一周的迴圈往複,不知道何時才是盡頭,每天除了工作學習就是睡覺。也許這樣的日子很充實吧,但是並不是非常喜歡這樣的生活。不知何時才可以跳出這樣的怪圈。重歸現實吧,還是繼續看看USB吧,講了USB的裝置描述符,那接下去就是USB的資料轉送了。       USB規範中規定了4種不同的資料轉送方式,她們分別為:1、等時傳輸,2、中斷傳輸、3控制傳輸、4批量傳輸。       控制傳輸主要用來傳輸裝置控制指令、裝置狀態查詢及確認命令。當USB裝置收到這些資料和命令後,

和菜鳥一起學linux之container_of執行個體

       公司的i2c和spi匯流排的所有東西都要交給我負責了,下午開始看了i2c的代碼,發現了個container_of的宏,甚是不解,網上找了點資料看看,自己寫了些小測試程式,終於明白了,看來以前學演算法沒有學好c的基礎就是現在這個下場啊,看這些東西要半天,進度都沒有了。還是記錄下來吧,以後看著就知道了。      #define container_of(ptr, type, member) ({ \ const typeof( ((type

和菜鳥一起學linux匯流排驅動之初識i2c匯流排協議

       就這麼稀裡糊塗地過了兩天,都在公司裡。為了不是我的工作的工作,是對,還是錯。自己定的計劃都沒有實現,要看的書也沒看,要玩的板子也沒玩。不過終於體驗到了,加班,其實對於IT業來說,太平常不過了。目前的部門還好,基本不用加班,布置的小任務,還是可以提前完成的,也有點時間用來記錄所學的過程,慢慢成長。昨天,和我們子公司的工程師趕項目到9點半才回去,今天他說,他是淩晨3點回去的。不容易啊,工作4年後,我也要這樣嗎?他們公司就他一個人做軟體,andriod上層應用到底層驅動都是他做的。   

和菜鳥一起學linux匯流排驅動之初識USB滑鼠抓包資料

       小日本可惡的暫時搶走了釣魚島,但是,相信憑藉全國人民的齊心協力,釣魚島是逃不掉的。至於要不要武力解決,這個不是我們說了算的。最好還是不能動武,到時候受害者還是老闆姓。相信時間會解釋一切,在此只能默默祈禱,釣魚島早日回到祖國大陸的懷抱。       好了,釣魚島的事,關心是需要的,但是也幫不上什麼忙,與其這麼瞎折騰,還是多學點東西,為祖國的建設做貢獻吧。      

和菜鳥一起學linux匯流排驅動之smartcard操作模式和協議與參數選擇

模式操作在複位應答後,卡處於下面兩種操作模式之一:——      若TA(2)存在,則處於特定模式;——      若TA(2)不存在,則處於協商模式。圖示出了卡操作模式的選擇和切換。 1、  特定模式在特定模式中,直接在複位應答之後,由TA(2)所指示的協議應使用——若TA(2)中b5=0,使用Fi和Di;——若TA(2)中b5=1,使用隱含值。然而,IFD可啟動熱複位來調用卡中的協商模式。 2、 

和菜鳥一起學linux匯流排驅動之初識USB裝置枚舉

       最近要寫SDK,smartcard又沒有什麼進展,事情還真是多啊,對於一個本科應屆畢業生,是不是要求高了點,哈哈,就喜歡嚴,那樣提高才快,不過很多時候,忙得自己連思考的時間也沒有多少了,也沒有實行自己的計劃,很多很多沒有做。想想確實應該放棄一些事情了,那樣的話,至少可以再某些方面做得很好,恩,加油就行。趁著周末之際,把所有模組的SDK都小整理了下,還是把上次沒有分析完的USB的枚舉給分析下吧。      

和菜鳥一起學linux匯流排驅動之初識smartcard操作過程

       學東西還是從實際的物體開始吧,先看下我們常用的觸點式IC卡的管腳定義。                                  介面裝置應通過觸點VCC向卡提供下列標稱電源:—— A類:5V——

和菜鳥一起學linux之do{…}while(0)的簡單一實例

       最近網上很流行一句話,那就是,元芳,你怎麼看呢?那麼對於那個linux核心中的宏定義中用的do{…}while(0),元芳,你怎麼看呢?       實踐出真知,還是寫幾行代碼,來調試調試吧。Linux核心中有著太多太多的奇妙的用法。人類積聚著的財富啊,不像windows,linux是可以讓我看到,學習的。而對於windows,那就只能是寫寫他們準備好了的API,調用下函數,殊不知其中做了什麼。還是先看下代碼吧: #include <stdio.h> void

Linux協議棧IP層的路由處理

寫在前面:其實,這篇文章也不知道取什麼名字好,感覺什麼都沒講。唉。。。其實我的意圖是說明Linux協議棧IP層,對資料包的路由處理,比如說,如果有兩個網卡裝置,資料包該從哪裡走,等等。。。首先,瞭解一下路由緩衝的概念:雖然路由表項資料結構提供了相對快速的查詢程式,但是對於每一個IP資料包都運行這樣一個查詢程式的成本還是太高。基於這個原因,Linux核心還有一個路由緩衝,用於儲存最近轉寄查詢的結果,以使訪問更加快速。每一個轉寄操作都會首先詢問路由緩衝。只有在緩衝沒有的,才會查詢路由表項,而此查詢的

Linux核心的編譯——菜鳥篇

Linux核心的編譯——菜鳥篇由於要裝虛擬機器,做一些Linux的實驗。因此裝上了vmware5.5,本來沒想裝vmware tools的。但是由於要和主機通訊,傳輸一些檔案,不外乎以下幾種方式: 1、利用ftp伺服器。同學用的就是,也很方便。但是我的網路的配置好像有些問題,ping主機都不通的,還是在一個網段下的,只好放棄了。 2、利用隨身碟copy,很麻煩特別是檔案不大,當子檔案很多的情況,等的花兒都謝了,實在不適合搞IT的人士。windows下打的包rar格式,Linux又不認。

linux各個檔案夾代表的意義

每次看到各個檔案夾都在想檔案夾為什麼這樣命名,有的如dev能猜到是device,但是etc,proc什麼的就不知道了.今天搜了一下也沒搜尋到權威的解釋,就在一個論壇裡看到這個英文的答案:當然也有中文的檔案夾功能解釋 /bin: where binary programs live./boot: the special programs that start the system when you turn the machine on./dev: aaaaaalll the "device"

Linux守護進程工作模式

 Linux守護進程工作模式守護進程工作在後台,沒有終端,一般多用於網路服務。絕大多數的精靈可以在兩種工作模式:standalone/inetd。精靈使用自己特定的連接埠提供服務。當精靈工作在standalone模式,它自己監聽連接埠並佔用更多的系統資源。可看作直接型。當精靈工作在inetd模式,inetd線程監聽連接埠,當收到串連時喚醒精靈,比standalone模式佔用更少的系統資源,但響應較慢。需要inetd中轉。standalone獨立啟動並執行守護進程獨立啟動並執行守護進程由init指

和菜鳥一起學linux之本地git中心倉庫建立

       昨天把GPIO類比SPI控制wm8768 codec實現了,於是要提交代碼,也終於知道了怎麼簡單用git倉庫了,以前一直是叫同事幫忙的,總覺得自己也得好好學一下啊。上傳了代碼之後就覺得其實也不是很難的嘛。早上在老薑的指導下,終於知道了怎麼在本地建立一個git中心倉庫,用來管理代碼。好了,下面把所學的分享下,也讓自己以後可以好好重新溫習只用。公司裡的東西,就給塗掉了,不影響學習,哈哈。。       1、首先建立一個檔案夾用以測試        

總頁數: 3662 1 .... 901 902 903 904 905 .... 3662 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.