驱动框架8——将驱动集成到内核中
以下内容源于朱有鹏《物联网大讲堂》课程的学习整理,如有侵权,请告知删除。
十五、将驱动添加到内核中
1、驱动的存在形式
(1)野生,优势是方便调试开发,所以在开发阶段都是这种;
(2)家养,优势可以在内核配置时make menuconfig决定内核怎么编译,方便集成。比如DM9000已经集成在内核中了,可以在menuconfig时配置。
2、驱动开发的一般步骤
(1)以模块的形式在外部编写、调试;
(2)将调试好的驱动代码集成到kernel中
3、实践
(1)关键点:Kconfig、Makefile、make menuconfig
(2)操作步骤
- 第1步:将写好的驱动源文件放入内核源码中正确的目录下;比如led的驱动,应该放在/drivers/leds/目录下;
- 第2步:/drivers/leds/目录下,在Makefile中添加相应的依赖;
- 第3步:在Kconfig中添加相应的配置项;(因为make menuconfig的原理是读取Kconfig中的信息,这里要显示对应的配置项目,则需要添加相应内容)
- 第4步:make menuconfig;(以y为示例,此时会被编译进去;若以M,则不会被编译进去,而是被编译成单独的模块;若以N,则不被编译。)
第2步:
第3步:
第4步:
选择y之后,保存,然后在.config文件中会有如下的宏
结果如下:
十六、目录和文件结构
mach-s5pv210/gpiolib.c s5pv210_gpiolib_init
mach-s5pv210/include/mach/gpio.h#define S5PV210_GPA0(_nr)(S5PV210_GPIO_A0_START + (_nr))
arch/arm/plat-samsung/gpiolib.c里面是210/6410这种4bit CON寄存器类型的操作方法
arch/arm/plat-samsung/gpio.c里面是24XX这种2bit CON寄存器类型的操作方法
drivers/gpio/gpiolib.c里面是内核开发者提供的gpiolib的驱动框架部分
驱动框架8——将驱动集成到内核中相关推荐
- Linux驱动框架之framebuffer驱动框架
1.什么是framebuffer? (1)framebuffer帧缓冲(一屏幕数据)(简称fb)是linux内核中虚拟出的一个设备,framebuffer向应用层提供一个统一标准接口的显示设备.帧缓冲 ...
- 驱动框架5——基于驱动框架写led驱动
以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 五.基于驱动框架写led驱动1 1.分析 (1)参考哪里? drivers/leds/leds-s3c24xx. ...
- Linux SPI驱动框架(2)——控制器驱动层
SPI控制器驱动层 上节中,讲了SPI核心层的东西,这一部分,以全志平台SPI控制器驱动为例,对SPI控制器驱动进行说明. SPI控制器驱动,即SPI硬件控制器对应的驱动,核心部分需要实现硬件SP ...
- Linux SPI驱动框架(3)——设备驱动层
SPI设备驱动层 Linux SPI驱动框架(1)和(2)中分别介绍了SPI框架中核心层,和控制器驱动层.其实实际开发过程中,不是IC原厂工程师比较少会接触控制器驱动层,设备驱动层才是接触比较多的 ...
- linux用户空间flash驱动,全面掌握Linux驱动框架——字符设备驱动、I2C驱动、总线设备驱动、NAND FLASH驱动...
原标题:全面掌握Linux驱动框架--字符设备驱动.I2C驱动.总线设备驱动.NAND FLASH驱动 字符设备驱动 哈~ 这几天都在发图,通过这种方式,我们希望能帮大家梳理学过的知识,全局的掌握Li ...
- linux内核网络驱动框架(linux驱动开发篇)
网络驱动的核心: 1.就是初始化 net_device 结构体中的各个成员变量, 2.然后将初始化完成以后的 net_device 注册到 Linux 内核中 1.网络设备(用net_device结构 ...
- linux pcie驱动框架_Linux设备驱动框架设计
引子 Linux操作系统的一大优势就是支持数以万计的芯片设备,大大小小的芯片厂商工程师都在积极地向Linux kernel提交设备驱动代码.能让这个目标得以实现,这背后隐藏着一个看不见的技术优势:Li ...
- linux iio 设备驱动,FS4412开发板使用Linux IIO驱动框架实现ADC驱动
1.概述 FS4412开发板有一个4通道(0/1/2).10/12比特精度的 ADC ,其中: 1)ADCIN0: 在核心板中引出 2)ADCIN1: 在核心板中引出 3)ADCIN2: 在核心板中引 ...
- 基于简单字符设备驱动框架编写代码驱动io_2
更具体步骤查看: https://blog.csdn.net/oNelson123/article/details/110726961 https://blog.csdn.net/qq_2825888 ...
最新文章
- Spring Cloud【Finchley】-11Feign项目整合Hystrix监控
- Popular Cows POJ - 2186(tarjan算法)+详解
- 已知函数func的C语言代码框架,第三章习题-ddg..doc
- Hadoop核心生态
- python语言中的缩进是什么意思_python编程中的缩进是什么意思
- PHP中的simplehtmldom学习
- PhpSpreadsheet 生成圆饼图
- java开发微信公众号支付全流程
- 使用xftp怎么向服务器传输文件,如何使用文件传输软件Xftp
- 【理解】运用数据透视表制作三栏账
- 比特大陆“众叛亲离”?
- 动物生存竞争对投资的启示!
- 暗黑破坏神3 夺魂之镰曝光“威斯特玛”城背景
- c++开平方sqrt
- python练习实例——字母图形
- 国惠光电短波红外相机资料下载
- 大数据学习之Linux服务器常用命令
- GB编码,汉字在编译器中数值
- .NET 中的 Encoding 编码
- STM8读取AD值偶尔跳变出错的问题
热门文章
- Django补充知识点——用户管理
- Algs4-1.4.18数组的局部最小元素
- vmware workstation17环境安装centos7
- JAR——pinyin4j-2.5.0
- 独家 | 一文读懂自然语言处理NLP(附学习资料)
- POJ1274 The Perfect Stall(二分图)
- jQuery EasyUI使用教程之基本的拖放
- 我的Android进阶之旅------Android利用温度传感器实现带动画效果的电子温度计
- 【学习笔记】在storyboard中给TabViewController添加tab页面
- wampServer2.1错误(Could not execute menu item (internal error)