简介:
Linux驱动按照编译方式可分为:驱动在linux内核内进行编译;驱动在linux内核外模块化编译。
1. 驱动在linux内核进编译:
(1)添加make menuconfig 菜单栏,实现宏定义
(2)设备注册
(3)驱动注册
2.驱动模块化编译:
(1)设备注册
(2)Makefile实现
(3)驱动实现
本文针对驱动在linux内核内部进行编译进行学习。
1 make menuconfig菜单栏添加
1 Drivers/Kconfig
驱动菜单栏的首个Kconfig文件,source包含相应的子菜单栏
2 drivers/char/Kconfig
字符设备菜单栏,当完成相应驱动配置后,会生成对应的宏变量,其中配置选项中bool 可以替换为tristate支持模块化编译。
2. 设备注册
arch/arm/mach-exynos/mach-itop4412.c 中完成设备注册
(1)设备结构体定义
(2)注册设备
3. 驱动注册
(1)将驱动程序员放到相应驱动目录结构,驱动程序编写后期更新
(2)更改Makefile
例如:添加字符设备在drivers/char/Makefile中添加
obj-$(CONFIG_LEDS_CTL) += itop4412_leds.o
完成驱动注册。
阅读(2795) | 评论(0) | 转发(0) |