驱动框架8——将驱动集成到内核中

来源:互联网 发布:淘宝数据公式pv uv 编辑:程序博客网 时间:2024/06/08 09:12

以下内容源于朱有鹏《物联网大讲堂》课程的学习整理,如有侵权,请告知删除。


十五、将驱动添加到内核中

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的驱动框架部分


原创粉丝点击