Linux platform驱动代码编写

 1、概述platform bus:

platform bus是Linux 2.6内核版本以后添加进去的一条虚拟平台总线,目的是便于开发驱动和管理设备。我们编写代码时根据相关要求把设备和驱动挂在上面,便完成platform驱动的编写了

 2、编写驱动:

我们需要编写两个文件,一个是平台设备文件,一个是平台驱动文件。

(1)平台设备文件

首先,编写描述设备的结构体
struct platform_device {
	const char	* name;
	int		id;
	struct device	dev;
	u32		num_resources;
	struct resource	* resource;//设备的资源

	const struct platform_device_id	*id_entry;

	/* MFD cell pointer */
	struct mfd_cell *mfd_cell;

	/* arch specific additions */
	struct pdev_archdata	archdata;
};
其次,注册设备
int platform_device_register(struct platform_device *pdev)
最后,卸载设备
void platform_device_unregister(struct platform_device *pdev)

(2)平台驱动文件

首先,编写描述驱动的结构体
struct platform_driver {
	int (*probe)(struct platform_device *);//一旦设备与驱动匹配成功,便开始执行本函数,一般在此初始化硬件
	int (*remove)(struct platform_device *);
	void (*shutdown)(struct platform_device *);
	int (*suspend)(struct platform_device *, pm_message_t state);
	int (*resume)(struct platform_device *);
	struct device_driver driver;
	const struct platform_device_id *id_table;
};
其次,注册驱动
int platform_driver_register(struct platform_driver *drv)
最后,卸载驱动
void platform_driver_unregister(struct platform_driver *drv)

3、把编译好的模块加载到linux系统中进行调试

你可能感兴趣的:(Linux驱动编程笔记)