原创 linux驅動例2--帶阻塞功能的計時器

        在前面的基礎上。希望添加一個等待隊列,用於阻塞不能得到資源的進程們。在資源釋放時,再從阻塞中恢復。 #include <linux/module.h> #include <linux/types.h> #include <

原创 Linux2.6驅動編譯分析

驅動與內核相關,所以對驅動的編譯來說,真正的編譯者是內核的Makefile。可以從下面看到 KERNELDIR ?= /linux-2.6.30.4 # The current directory is passed to sub-mak

原创 Linux驅動編程--字符設備文件註冊

(反正這種方法已經被寫爛了,所以請允許我拿來練練英語吧。歡迎指正,welcome your advices) traditional method:         int register_chrdev(unsigned int maj

原创 Linux驅動編程--阻塞控制

中斷屏蔽:         disable_irq(unsigned int irq);     --關中斷        enable_irq(unsigned int irq);      --開中斷         local_i

原创 linux驅動編程--幾個重要函數及概念

@cdev is a structure, it is used to record some information about char-device. for add a @cdev, the following steps is

原创 s3c2440簡單驅動編程-led

(最近開始學習Linux驅動編程,爲了方便總結就把信息簡單的歸納下來了。由於初學,技術很欠缺,歡迎糾正錯誤的地方)         OS      :linux         cpu     :s3c2440         開發板:T

原创 linux驅動編程--中斷

一.中斷的基本處理:         簡單的中斷處理,主要是使用request_irq()和free_irq()。          In fact, the kernel create a global array( irq_desc[

原创 有趣的小程序--統計系統中不同種類文件數量

        在linux系統中有7中類型的文件:普通文件,目錄,鏈接文件,字符設備文件,塊設備文件,套接字文件,fifo文件。一般來說應該能猜到是普通文件和目錄文件最多,但具體的數據又是多少? 一.知識要點              

原创 linux2.6驅動編譯-常見問題

在這次驅動學習過程中出現瞭如下問題: 1).建立了nfs掛載文件夾後,發現一從虛擬機下載資源,就會卡住。並提示 "nfs: server 200.200.200.153 not responding, still trying“。    

原创 linux驅動編程--異步通知與異步I/O

        In a general way, there are two methods for process control: synchronization and asynchronization.         syn

原创 linux驅動例3--計時器,帶阻塞功能,中斷分段

        在前面帶阻塞功能計時器的基礎上,再對中斷進行分段處理。中斷分段處理有兩種常用的方式tasklet和工作隊列。         之所以需要將一箇中斷處理過程分段是因爲在處理普通中斷時系統需要屏蔽其他中斷(?否則可能可能產生混

原创 linux驅動例1--計時器

1.製作一個定時器驅動 #include <linux/module.h> #include <linux/types.h> #include <linux/fs.h> #include <linux/errno.h> #include

原创 linux驅動編程--設備模型1

        最近學習設備模型的運行機制,進過書上和網上資料的訓練,貌似已經修改出了自己的網絡權值,所以寫了下來並整理一下自己的思路。         之前的驅動程序由於硬件信息和邏輯操作是寫在一起的,所以一個驅動只能適應一種平臺。爲了

原创 linux驅動編程--內存與I/O訪問

(still a problem) 一.         1.1 MMU                 MMU(Memory Manage Unit)是一種輔助內存管理的硬件機制。由一組硬件設備共同協從硬件上爲CPU提供訪問安全檢查,地

原创 linux驅動編程--工作隊列淺析

          內核默認爲每個cpu創建一個worker process,events/0;並在全局的工作隊列上爲其掛上了一個專屬的鏈表()。工作會被掛到該鏈表上,由events/0取出來執行。centainly, except f