栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux——驱动开发

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux——驱动开发

一、驱动开发概述 1.1 驱动形式

驱动代码的形式一般可分为build-in和module两种形式,build-in是在编译linux同时将pcie的驱动代码编译到内核中,启动的时候就载入该驱动代码;module是在linux启动完成后通过终端输入命令insmod/remod进行载入者移除驱动。

1.2 linux设备驱动模型

Linux内核会建立一个统一的设备模型,分别采用总线、设备、驱动三者进行抽象,其中设备与驱动都挂在总线上,当有新的设备注册或者新的驱动注册时,总线会去进行匹配操作(match函数),当发现驱动与设备能进行匹配时,就会执行probe函数的操作;

二、build-in驱动代码开发 2.1 配置项

在编译linux过程中,需要给特定的驱动添加选项,最后的配置选项结果会生成到.config文件中
以CONFIG_DW9000选项为例,若要在linux中添加DW9000网卡的驱动,就需增加该选项。
该选项存在的文件包括

  1. C源代码
    根据 inlcude/linux/autoconf.h中的宏选择编译的实际代码内容
  2. drivers/net下的Makefile
  3. include/config/auto.conf
    自动生成的文件,该文件被顶层的Makefile包含
  4. inlcude/linux/autoconf.h
    根据.config文件的内容自动生成
三、module驱动代码开发

通常在linux中编写的c程序都是应用程序,运行在用户空间下,但是module驱动程序是运行在内核空间下的,其格式与应用程序有一定不同。

驱动代码一般需要添加如下代码:

	#include 
	
	MODULE_DEscriptION("xxx"); //模块描述
	MODULE_LICENSE("GPL"); //声明此模块的许可证,此模块符合GPL协议。否则在加载此模块时,会收到内核被污染 “kernel tainted” 的警告。
	MODULE_AUTHOR("xx"); //作者名称,可以随意命名

四、驱动开发案例
  • xilinx pcie驱动分析
    参考链接:link
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/681273.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号