linux设备和驱动注册

一、设备注册:

1、首先需要对内核文件iTop4412_Kernel_3.0 中的arch/arm/mach-exynos/mach-itop4412.c 平台文件做修改,仿照leds的设备注册来写。该结构体定义在include/linux/platform_device.h 中,这里还需要确认一下,是否有“HELLO_CTL”宏定义,只有定义了这个宏,在生成内核的时候才会将其编译到内核。 在drivers/char/Kconfig 中可查看是否定义

2、make menuconfig在Device Drivers --->”→“Character devices --->”→“Enable HELLO config 

确认了宏定义“HELLO_CTL”

3、打开“arch/arm/mach-exynos/mach-itop4412.c”平台文件可查找LEDS_CTL 仿照着已有的初始化代码写即可

4、保存退出,make zImage重新编译内核,烧写到开发板

5、开发板启动之后,使用命令“ls /sys/devices/platform/”可以查看到新注册的设备

二、驱动注册:

1、内核源码中 vim include/linux/platform_device.h 可看到驱动注册的相关函数,查找一下“platform_driver_register” 可看到:

注册驱动的函数:
extern int platform_driver_register(struct platform_driver *)
卸载驱动的函数:

extern void platform_driver_unregister(struct platform_driver *)

其中 platform_driver 类型的结构体 是非常重要的,该结构体在include/linux/platform_device.h 头文件中,里面的几个操作函数和一个对象会在编写的驱动C文件中调用,相关函数可参照例程中仿写。

2、在Makefile文件中把第四行的 .o 文件 修改为相应的驱动C文件的名字 如驱动C文件probe_linux_module.c,则改为probe_linux_module.o

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值