原创 一個IT人士的個人經歷,給迷失方向的朋友

一個IT人士的個人經歷,給迷失方向的朋友2015-12-25 09:51 eoe 字號:T | T這些日子我一直在寫一個實時操作系統內核,已有小成了,等寫完我會全部公開,希望能夠爲國內IT的發展儘自己一份微薄的力量。最近看到很多學生朋友和我

原创 Linux輸入子系統

    在Linux中,按鍵、觸摸屏、鼠標等等輸入設備都可以依靠輸入子系統提供的接口函數來實現他們的設備驅動,在輸入子系統中,系統已經完成了這些輸入設備的共性,所以根據子系統提供的接口,只需要完成各自的獨特性即可完成一個輸入設備的設備驅動。

原创 網卡移植

    Linux系統中具有相當完善的各類驅動代碼,很大時候都不需要我們從頭到尾去寫一個驅動程序,對於一些相對複雜的驅動程序,從頭到尾寫也沒這個必要,最好的方法就是移植:將廠家提供的驅動模板或Linux中相似相近的驅動程序通過修改,讓程序能

原创 C語言 單鏈表的實現

    鏈表由多個節點構成,節點之間可以靈活的插入、刪除。鏈表以結構體的自引用原理,可以在內存中以不連續的方式動態分配內存來存儲數據,這樣的結構體就是鏈表的一個節點。 一個節點分爲兩個域:一個是數據域,一個是指針域,這方便鏈表在存儲數據的同

原创 二叉樹的其他操作

    之前實現過二叉樹的創建,非遞歸遍歷和遞歸遍歷。現在添加一些其他的操作,包括:銷燬一棵樹計算樹的深度(高度).計算葉子節點的個數計算所有節點的個數複製二叉樹   具體見代碼:#include <stdio.h> #include <s

原创 Git 命令總結

        git是一個很強大的分佈式版本控制系統。學習git可以參考 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

原创 NAND Flash裸板編程

    nand flash按照我的理解,在開發板上就類似我們所用的電腦中的硬盤,用來保存系統運行的操作系統,應用程序,數據等,掉電之後還可以永久得保存數據(不包括臨時數據)。通過控制或配置NAND Flash的控制器寄存器,即可完成對na

原创 服務器select模型

    多路轉接I/O服務器中的一種:select服務器,該模型的服務器是將文件描述符放入隊列中保存並監聽,以輪詢的機制去監聽這些文件描述符,當相對應的文件描述符有讀請求、寫情況或異常發生時,對應的位將發生變化。select模型需要對所有監

原创 順序隊列和鏈式隊列的實現

    隊列是一種常用的數據結構,它跟棧一樣,操作都受到限制,隊列只允許從一端進數據,另一端出數據。隊列跟棧不同,棧是一種“後進先出”的模式,而隊列是一種“先進先出”的操作模式。就好比日常排隊一樣,先排隊的先出,後排隊的後出。例如,進入隊列

原创 塊設備驅動

    在Linux下,驅動設備有字符設備驅動、塊設備驅動和網絡設備驅動三種,之前學習了字符設備驅動,現在開始學習塊設備驅動。首先來比較看這兩種設備驅動有何不通,爲什麼要分割成不同類型的驅動。舉一個例子說明引入塊設備驅動的必要:假如按照字符

原创 順序棧與鏈表棧的實現

    棧是一種常見的數據結構,它雖然有棧頂和棧底之分,但它只能從一端操作(插入或刪除),從而是一種“先進後出”的操作模式。向棧內進數據稱爲壓棧(Push),從棧裏取出數據叫出棧(POp)。例如壓棧順序爲1、2、3、4、5,着出棧的順序爲5

原创 平臺設備驅動模型

    對於字符設備驅動程序,之前都是在驅動程序中定義並設置file_operations結構體,實現各種需要用到的函數,註冊file_operations結構體,框架比較簡單,但是在Linux中,卻很少看見這樣框架的代碼,那是因爲在Lin

原创 二叉查找樹的基本操作實現

        二叉查找樹又叫二叉排序樹,其特點有:對於每一棵子樹,若左子樹不爲NULL,則左子樹所有節點都小於它的根結點值。對於每一棵子樹,若右子樹不爲NULL,則左子樹所有節點都大於它的根結點值。沒有鍵值相等的結點。完成二叉查找樹的基本

原创 網卡驅動程序

    我們知道,Linux下的驅動分爲字符設備驅動、塊設備驅動和網絡設備驅動,網絡設備是通過socket通信實現對數據的接收和傳遞,並不會像字符設備一樣會打開某一個文件。網絡設備驅動中包含着對網卡等內部比較複雜的硬件操作和各種協議,所以現

原创 delete與delete[]

    在c++中,在堆上分配內存使用的new函數,它動態分配內存,主要有三種形式:1.分配一個空間未初始化  int* p=new int;2.分配一個空間初始化  int* p=new int(初始值)3.分配一段連續空間   int*