嵌入式应用程序设计设备驱动.ppt
《嵌入式应用程序设计设备驱动.ppt》由会员分享,可在线阅读,更多相关《嵌入式应用程序设计设备驱动.ppt(24页珍藏版)》请在三一办公上搜索。
1、嵌入式应用程序设计第八章 嵌入式Linux设备驱动编程,知识点回顾,TCP/IP模型套接字TCP 套接字编程UDP 套接字编程,滨州学院计算机科学技术系吴殿红,设备驱动的基本概念Linux内核与驱动的关系Linux内核模块结构内核模块命令,本次课内容,滨州学院计算机科学技术系吴殿红,1.设备驱动概念 是处理和操作硬件控制器的软件。驱动程序是内核的一部分,是操作系统内核与硬件设备的直接接口,驱动程序屏蔽了硬件的细节,完成以下功能:对设备初始化和释放;对设备进行管理,包括实时参数设置,以及提供对设备的操作接口;读取应用程序传送给设备文件的数据或者回送应用程序请求的数据;检测和处理设备出现的错误。,
2、8.1 设备驱动编程基础设备驱动,滨州学院计算机科学技术系吴殿红,2.Linux系统的设备分类字符设备通常指以字节为单位顺序读写的设备,如并口设备、虚拟控制台等。块设备通常指以块为单位随机读写的设备,如IDE硬盘、SCSI硬盘、光驱等。网络设备通常是指通过网络能够与其他主机进行数据通信的设备,如网卡等。,8.1 设备驱动编程基础设备驱动,举例:linux设备识别,在linux中任何设备都是文件。所有设备的设备文件节点都在/dev目录下。#:ls al/dev,滨州学院计算机科学技术系吴殿红,3.设备驱动程序的特点 内核代码 内核接口 内核机制和服务 可装载 可设置 动态性,8.1 设备驱动编程
3、基础设备驱动,滨州学院计算机科学技术系吴殿红,4.设备驱动程序与整个软硬件系统的关系,8.1 设备驱动编程基础设备驱动,滨州学院计算机科学技术系吴殿红,1.Linux的内核模块Linux内核采用可加载内核模块化设计(Loadable Kernel Module,LKM)内核模块:是一些可以让操作系统内核在需要时载入和执行的代码。是一种目标对象文件,通常由一组函数和数据结构组成。内核的一个模块可以以两种方式被编译和加载。直接编译进Linux内核,随同Linux启动时加载;编译成一个可加载和删除的模块。,8.1 设备驱动编程基础内核模块编程,8.1 设备驱动编程基础内核模块编程,C语言程序 Lin
4、ux内核模块运行 用户空间 内核空间入口 main()module_init()指定;出口 main()module_exit()指定;编译 gcc c Makefile连接 ld insmod运行 直接运行 insmod调试 gdb kdbug,kdb,kgdb等,2.Linux内核模块与应用程序的区别,8.1 设备驱动编程基础内核模块编程,3.内核模块相关命令insmod module.oLoad the module注意,只有超级用户才能使用这个命令rmmod module Unload the modulelsmodList all modules loaded into the ke
5、rnel这个命令和cat/proc/modules等价modprobe-r Load the module specified and modules it depends,举例:模块相关命令,lsmodinsmod hello.ormmod hellomodprobe/lib/modules/linux版本号/modules.dep/etc/modprobe.conf modeproble r hello,最简单的内核模块例子,#include#include#includeMODULE_LICENSE(GPL);static int _init hello_init(void)printk
6、(“Hello kernel.n);return 0;static void _exit hello_exit(void)printk(“bye bye.n);module_init(hello_init);module_exit(hello_exit);,生成makefile文件,Makefile文件obj-m:=hello.oall:make-C/usr/src/linux-2.4.20/M=$(shell pwd)modulesclean:make-C/usr/src/linux-2.4.20/M=$(shell pwd)modules clean,编译装载过程,$lshello.c M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 应用 程序设计 设备 驱动
链接地址:https://www.31ppt.com/p-2870004.html