首页 / LINUX / linux驱动学习——驱动大致框架
linux驱动学习——驱动大致框架
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux驱动学习——驱动大致框架,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1477字,纯文字阅读大概需要3分钟。
内容图文
![linux驱动学习——驱动大致框架](/upload/InfoBanner/zyjiaocheng/939/c8666e402b2a44608e9d256ef37015ec.jpg)
以led为例子 非设备树 这样需要在open read write函数中 对硬件做处理 通用性较差
/* 1. 确定主设备号 */
static int major = 0;
/* 3. 实现对应的open/read/write等函数,填入file_operations结构体 */
static int led_drv_open (struct inode *node, struct file *file) static int led_drv_close (struct inode *node, struct file *file) static ssize_t led_drv_write (struct file *file, const char __user *buf, size_t size, loff_t *offset) static ssize_t led_drv_read (struct file *file, char __user *buf, size_t size, loff_t *offset) 。。。。
/* 2 定义自己的file_operations结构体 */
static struct file_operations led_drv = { .owner = THIS_MODULE, .open = led_drv_open, .read = led_drv_read, .write = led_drv_write, .release = led_drv_close, };
/* 4. 把file_operations结构体告诉内核:注册驱动程序 */
/* 5. 谁来注册驱动程序啊?得有一个入口函数:安装驱动程序时,就会去调用这个入口函数 */
/* 6. 有入口函数就应该有出口函数:卸载驱动程序时,就会去调用这个出口函数 */
/* 7. 其他完善:提供设备信息,自动创建设备节点 */
module_init(xxx_init); module_exit(xxx_exit); MODULE_LICENSE("GPL");
/* 1. 定义platform_driver */
/* 2. 在入口函数注册platform_driver */
/* 3. 有入口函数就应该有出口函数:卸载驱动程序时,就会去调用这个出口函数卸载platform_driver*/
/* 7. 其他完善:提供设备信息,自动创建设备节点 */
内容总结
以上是互联网集市为您收集整理的linux驱动学习——驱动大致框架全部内容,希望文章能够帮你解决linux驱动学习——驱动大致框架所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。