原创 Linux 驅動開發-0、內核模塊設計

Linux內核模塊設計

原创 Linux驅動開發--1、設備驅動基礎

設備驅動基礎1.設備驅動的使用方式:a) 動態加載 b) 直接編譯進內核2.驅動程序分類:a) 字符型設備b) 塊設備c) 網絡接口d) 其他:如SC

原创 Linux驅動開發-15、網絡設備驅動

網絡設備驅動 1、Linux 網絡類設備不在是基於文件操作(沒有對應的映射到文件系統中的設備節點),而是套接字socket來實現通訊 2、Linux 網絡子系統的架構圖   各層次接口功能說明: 系統調用接口層:爲應用程序提供訪問網絡子系

原创 Linux驅動開發、16-迴環網卡驅動設計

1、迴環網卡:它是一種虛擬設備,原理是自發自收,形成邏輯上的迴路       2、迴環網卡驅動設計步驟   設備初始化: 1、分配網卡設備:struct net_device *dev = alloc_netdev(0, "lo", lo

原创 Linux驅動開發-14、串行設備驅動模型

串行設備驅動模型 1、TTY概念解析 a) 串口終端(/dev/ttyS*) 串口終端是使用計算機串口連接的終端設備;Linux以字符設備來處理這種串行端口;這些端口所對應的設備名稱是/dev/ttySAC0-N   b) 控制檯終端(/

原创 Linux驅動開發、21-塊設備驅動設計

塊設備驅動 1、基礎概念   塊設備是一種能隨機訪問的存儲介質,與字符設備不同,它能保存文件系統數據。   IDE(Integrated Driver Electrics,集成驅動電子設備)是PC中常見的存儲接口技術 ATA(Advanc

原创 Linux驅動開發-字符設備驅動筆記 2

字符設備驅動程序設計 概念 字符設備文件: 應用程序通過字符設備文件而調用字符設備驅動的文件操作 映射關係是一個文件描述符 字符設備文件創建方法可以使用以下命令形式: cat /proc/devices  // 查看

原创 Linux驅動開發--設備驅動基礎筆記 1

設備驅動基礎 設備驅動的使用方式: 動態加載 直接編譯進內核 直接編譯進內核的方法:(內核源碼/Doucument/kbuild/…中有相應的介紹) .config:頂層配置文件,可以手動修改,也可以通過make menuco

原创 Busybox ---------- init進程解析

Busybox ---------- init進程解析 1、/sbin/init 是 /bin/busybox的符號鏈接,所以busybox是目標板上執行的第一個應用程序。 2、當busybox知道調用它的目的是init,它會立即跳轉到i

原创 Linux驅動開發-混雜字符設備驅動模型筆記 4

混雜字符設備驅動模型 概念 linux系統中,稱以主設備號爲“10”,但次設備號不同的字符設備爲混雜設備 所有的混雜設備形成一個鏈表 對設備訪問時,內核根據次設備號查找到相應的設備 結構描述 struct miscdevice

原创 Linux驅動開發-字符設備控制技術筆記 3

字符設備控制技術   筆記要做的自己看起來舒服和有頭緒,這不又折騰切換編輯器來從新排版,有強迫症啊!對於字符控制,很多時候編寫上層應用程序時,使用ioctl系統調用來控制設備,原型如下: /* fd: 要控制的設備文件描述

原创 Git 本地操作 與 Eclipse IDE 操作

Githup 與 Eeclipse IDE 操作 git 工具安裝 sudo apt-get install git sudo apt-get install git-doc git-svn git-email git-gui

原创 Linux驅動開發-9、Linux定時器

Linux定時器 1.定時器是對機器時鐘中斷的應用 - 2.內核提供一組數據結構來完成定時觸發工作或者完成週期性的事務 3.操作系統中,一般不允許使用for循環來延時,一般使用定時器來完成延時功能 4.jiffies 表當前時間,HZ表

原创 Linux驅動開發-11、設備阻塞訪問-等待隊列

Linux設備阻塞訪問-等待隊列 1、概念 a) 阻塞操作是指在執行設備操作時若不能獲得資源則掛起進程,直到滿足可操作的條件後再執行 b) 被掛起的進程進入休眠狀態,從調度器的運行隊列移走,直到條件等待的條件被滿足時進程再度被喚醒 2、需

原创 Linux驅動開發-12、總線設備驅動模型

總線設備驅動模型 1、概念:將屬於同一種接口(如USB,I2C等)的不同設備掛載在總線上,設備可以通過總線匹配到相應的驅動程序。   2、優點: a) 支持熱插拔 b) 驅動程序可移植性提高 3、關係圖解 ---- 頭文件  #inclu