原创 驅動中使用內核鏈表

前面我們詳細介紹瞭如何實現內核鏈表,實際上內核中已經爲我們實現了內核鏈表,給我提供了一些操作內核鏈表的API,接下來我們將在驅動模塊中使用內核鏈表。 首先我們瞭解幾個常用的API: 以下是代碼實例(由於前面已經對內核

原创 Linux下的基本命令詳解

             Linux系統不像windows系統那樣圖形界面做的那麼美觀漂亮,點擊圖標即可,Linux下都是使用命令行的形式來和系統進行交互(當然也有圖形界面,只是做的不是那麼完善),使用Linux命令相比而言還是比較方便的

原创 gcc的編譯流程詳解

            C語言是編譯型的語言,必須經過編譯器的編譯才能在內存中加載被處理器執行,從C語言的源文件到最終的處理器能夠執行機器碼,是我們通常所說的”編譯“,這是個模糊的概念,實際上需要預處理、編譯、彙編、鏈接四個處理流程,那麼

原创 淺談交換機和路由器的區別

        網絡在我們的生活學習中已經成爲了必須的東西,也許 ”世界上最遙遠的距離就是沒網“,而路由器和交換機這兩種聯網的中繼設備最常見。如下圖左爲交換機,右爲路由器。那麼到底路由器和交換機有哪些區別呢?他們在網絡的組建方面各自扮演什

原创 Linux下的TCP編程

對比與其他的操作系統,Linux系統有兩個主要的特色:免費開源和強大而完善的網絡功能,內核大約有百分之十的代碼用於支持絡.Linux內核支持着各種網絡協議,管理着複雜的網絡功能,向下提供網絡設備的驅動,向上提供應用程序編程網絡的接

原创 鏈表的翻轉(史上最簡)

    如何將一個鏈表進行翻轉?本文將對這個問題進行詳解,主要說明一下這個算法的邏輯思路。需要說明的是:此算法雖然只有簡明的幾行代碼,但是需要有一定的邏輯思維,需要搞明白整體的邏輯。        首先,我們以如下單向鏈表爲例:    

原创 Wireshark抓包軟件的使用

Wireshark是一個強大的網絡抓包分析軟件,能夠截獲網卡獲取 的數據包,並給出數據包最詳細的網絡封包資料。本文從使用的角度詳解如何使用此軟件進行數據包的抓取,如何進行數據包的分析等。以下通過圖文進行解析說明,此軟件直接可以從網站上下載

原创 單片機的“內芯”世界

             細心的童鞋們會發現,生活中有好多儀器儀表都以“微電腦” (有的是“數碼” / “智能”)來冠以前綴,例如:微電腦電飯煲、微電腦洗衣機、微電腦萬年曆等等。這些電子產品給人一種高大上的感覺,似乎讓人以爲內部集成了高科

原创 Makefile的通用模板解析

            介於許多童鞋不會使用Makefile來管理我們的代碼文件,有時候工程文件少的時候通過gcc直接編譯是比較方便的,但是當我們一個項目中的工程文件比較多難以管理的時候再去使用gcc去逐個地編譯源文件那是比較麻煩的,可能

原创 通用(內核)鏈表詳解

Linux內核中充斥着大量的數據結構,這些數據結構很多都是使用結構體來表示:如cdev結構體用於描述一個字符設備,再如task_struct結構體,是我們所說的進程控制塊PCB,用於描述一個進程的所有信息。追尋內核源碼我們會發現很

原创 windows下的網絡配置

       鑑於好多朋友不會在windows下配置網絡導致在使用網絡過程中出現各種問題,例如:能夠ping的通局域網中其他的主機,但是就是不能”上網“,或者QQ能夠登錄但是wab網頁就是打不開等等。於是針對這些問題,我寫了這篇博客希望能

原创 C語言的內存分配和段錯誤的處理

          在嵌入式的程序設計中對於程序變量的內存的管理尤爲重要,因爲嵌入式產品的內存資源十分有限,合理分配內存是程序設計人員最優先考慮的問題。當然,一些變量的內存分配不合理有時會導致程序的崩潰(即是段錯誤)等錯誤。本文針對這些問

原创 Linux下的UDP編程

對比與TCP來說,我們知道UDP是面向無連接的而且不可靠的通信,它適合傳輸數據量不大的數據且對數據的可靠性要求不高,由於它是無連接的所以它的數據傳輸效率比較高,也適合也對實時性要求較高的場合如:音視頻的聊天等. 本文將介紹

原创 函數調用堆棧的彙編解析

大家可能都會做過這個的gcc編譯過程:gcc -S test.c -o test.s ,通過這樣的編譯得到的是我們的彙編代碼,打開test.s文件會發現都是我們看不懂的彙編指令。也許我們都想過去看看這些彙編代碼是什麼意思,可是這些

原创 使用git從opensource下載最新的uboot和linuxne內核

本文分成兩部分講解,分別是下載最新的uboot和linux內核(使用git工具)。 一、下載uboot 1.克隆遠程uboot git倉庫。 git clone git://git.denx.de/u-boot.git 下載的ubo