原创 設備文件系統剖析與使用 udev mdev devfs

一、什麼是Linux設備文件系統       首先我們不看定義,定義總是太抽象很難理解,我們先看現象。當我們往開發板上移植了一個新的文件系統之後(假如各種設備驅動也移植好了),啓動開發板,我們用串口工具進入開發板,查看系統/dev目錄,

原创 udev class_create() device_create()

在剛開始寫Linux設備驅動程序的時候,很多時候都是利用mknod命令手動創建設備節點,實際上Linux內核爲我們提供了一組函數,可以用來在模塊加載的時候自動在/dev目錄下創建相應設備節點,並在卸載模塊時刪除該節點,當然前提條件是用戶

原创 Usb設備驅動1:root hub 設備驅動安裝

Usb設備驅動1:root hub 設備驅動安裝 按照設備模型的總線,設備,驅動模式,一條總線會把所有這條總線上的設備和驅動都掛載到總線的設備鏈表和驅動鏈表上,具體到usb總線上,就是usb主控制器,hub等設備,都需要按照設備模型的要

原创 linux設備模型詳解

Linux 2.6內核的一個重要特色是提供了統一的內核設備模型。隨着技術的不斷進步,系統的拓撲結構越來越複雜,對智能電源管理、熱插拔以及plug and play的支持要求也越來越高,2.4內核已經難以滿足這些需求。爲適應這種形勢的需要,

原创 Android HAL

1 HAL產生的原因 Android HAL(Hardware Abstraction Libraries)是處於user space的最下層,是Android定義的要求Linux內核空間來具體實現的驅動接口。根據Google的說法,使用

原创 usb skel 詳解

註冊USB驅動程序:所有的USB驅動程序都必須創建的結構體是struct usb_driver。這個結構體必須由USB驅動程序來填寫,包括許多回調函數和變量,它們向USB核心代碼描述USB驅動程序。創建一個有效的struct usb_dr

原创 Android HAL(硬件抽象層)介紹以及調用

1 HAL簡介 Android 的 HAL(Hardware Abstract Layer硬件抽象層)是Google因應廠商「希望不公開源碼」的要求下,所推出的新觀念,其架構如下圖。雖然 HAL 現在的「抽象程度」還不足,現階段實作

原创 Android通過JNI調用驅動程序(完全解析實例)

要達到的目的:android系統中,用JAVA寫界面程序,調用jni中間庫提供的接口,去操作某個驅動節點,實現read,writer ioctl等操作!這對底層驅動開發人員是很重要的一個調試通道,也是android 系統下提供一些特殊功能

原创 Linux驅動程序中比較重要的宏

MODULE_DEVICE_TABLE (usb, skel_table);          該宏生成一個名爲__mod_pci_device_table的局部變量,該變量指向第二個參數內核構建時,depmod程序會在所有模塊中搜索符

原创 Android.mk的解析

Android中增加本地程序或是庫,這些程序和庫與其所在的路徑是沒有關係的,只和他們的Android.mk文件有關。 Android.mk和普通的Makefile略有不同,Android.mk具有統一的寫法主要是包含一些系統的宏 在And

原创 Android JNI知識簡介

Java Native Interface (JNI)標準是java平臺的一部分,它允許Java代碼和其他語言寫的代碼進行交互。JNI 是本地編程接口,它使得在 Java 虛擬機 (VM) 內部運行的 Java 代碼能夠與用其它編程語言(

原创 Android驅動例子(LED燈控制)

本例子,講述在android2.1上完全自已開發一個驅動去控制硬件口並寫應用測試該驅動,通過這樣一個例子,解析android下的驅動開發流程的應用調用流程,可以說是很好的入門引導。 要達到的效果:通過android的應用,調用驅動程序,

原创 Linux下的硬件驅動——USB設備

前言 USB是英文"Universal Serial Bus"的縮寫,意爲"通用串行總線"。是由Compaq(康柏)、DEC、IBM、Intel、NEC、微軟以及Northern Telecom(北方電訊)等公司於1994年11月共同

原创 想成爲嵌入式程序員應知道的0x10個基本問題

C語言測試是招聘嵌入式系統程序員過程中必須而且有效的方法。這些年,我既參加也組織了許多這種測試,在這過程中我意識到這些測試能爲面試者和被面試者提供許多有用信息,此外,撇開面試的壓力不談,這種測試也是相當有趣的。 從被面試者的角度來講,你

原创 USB系統設備模型建立流程

   USB設備模型建立流程概覽 S3c2440處理器中集成有USB控制器,該主控制器作爲平臺設備s3c_device_usb添加到內核,該設備與驅動ohci_hcd_s3c2410_driver匹配後調用函數usb_h