网站大量收购独家精品文档,联系QQ:2885784924

第一次写LinuxDriver就上手-RSWiki.PDF

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一次写LinuxDriver就上手-RSWiki

Lab 10 Linux Drivers 實驗目的 利用 Linux 來建立Embedded system已經是非常常見的應用。在不同的系統 應用上面經常會有不同的硬體如 LCD 、Key Pad 等,必須透過不同的I/O操作才 能夠控制。通常這些必須直接與硬體溝通的程式,都會寫成 driver的型態載入 作業系統。透過該 driver提供一組標準的介面存取硬體,如此使用者的程式便 不需要直接與硬體溝通,當更換了不同的硬體,也只需載入不同的driver ,不 用重寫上層的應用程式,也就是說 driver 為 kernel space和 user space間的 interface。本章的目的是讓大家對driver能夠有一個初步的認識,並且用簡單 的例子描述一個基本的 driver如何撰寫。在讀完本章之後,便能具備設計和修 改 driver的基本功力了。 實驗器材  PC x 1  Requirement: any modern PC will do.  Purpose: To work as a host workstation on which we will run Linux to create and build a customized driver. 實驗所需軟體  PC  Linux  Editor (such as vi and emacs)  gcc compiler Table of Contents 1.簡介 3 2. 如何寫一個 driver 4 3. 使用你的 driver 10 4. 和 I/O溝通 11 第一次寫 Linux Driver就上手 1.簡介 Linux 將driver 分為三種型態,分別是字元、區塊和網路設備,本章將以最 常用的字元裝置當作例子 。一般而言字元裝置可當作一般檔案存取,包含基本的 open 、close 、I/O control 、read和 write 。在 driver的基本架構中,我們首先向 系統註冊一個driver ,再向系統註冊我們所提供的open 、close 、read和 write 的服務即可。 我們將這幾項服務列成event 來看,並且一步步引導大家來實踐這 些event 。 Initial module 當 driver被載入之後第一個被呼叫的 函式,類似一般C語言中的 main function ,在此function中向系統註冊為字元 device和所提供的服務 Open device 當我們的 device被 fopen 之類的函式開啟時所執行的對應處理 函式 Close device 使用者程式關閉我們的 device時執行的對應處理 函式 I/O control 使用者可透過 ioctl命令設定 device的一些參數 Read device 當程式從我們的 device讀取資料時對應的處理 函式 Write device 當程式對我們的 device寫入資料時對應的處理 函式 Remove module 當 driver被移除時所執行的處理函式 ,必須對系統取消註冊device 2. 如何寫一個 driver 建立一個基本的 driver 最簡單的 driver 架構非常簡單,只需要兩行: demo.c #include linux/module.h MODULE_LICENSE(Dual BSD/GPL); Makefile如下 : CC=arm-unknown-linux-gnu-gcc # 與編kernel image 時用的cross compiler 相同 obj-m := demo.o all: make -C /[PATH]/pxa270/linux M=$(PWD) modules clean: make -C /[PATH]/pxa270/linux M=$(PWD) clean Compi

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档