【精选】嵌入式Linux驱动难?到底难在哪?

您所在的位置:网站首页 linux就得这么学 【精选】嵌入式Linux驱动难?到底难在哪?

【精选】嵌入式Linux驱动难?到底难在哪?

2023-10-26 18:12| 来源: 网络整理| 查看: 265

驱动入门难在:如何通过自己的学习能力搭建起环境,并理解一个LED驱动。 深入驱动难在:对内核的理解,对特定协议的认识。

最近看到论坛和群里一些人在说驱动难,个别人提出提供的入门资料还是难以入门。作为嵌入式linux驱动学习的新人,可能心里都有自己的想法,期望有一个自己心中完美的资料来帮助自己入门。然而,每个人基础不同,悟性不同,对待 问题的态度不同,所以根本难以一个教程满足所有人。但是总结来说,就是新手可能更希望从现象出发,从最高层出发,从应用出发,然后到底层驱动是如何调用下来的。这个本文可以简单说说。但本文重点是,驱动难吗,这一行到底难在哪?

本文主题:入门驱动并不难,入门驱动我认为只需要完成LED驱动。如果你理解了LED驱动,我想说你已经入门了,剩下的驱动就是在此基础上进行思考。资料是加速你学习,为你提供帮助的。

真正在这行成长,一定不要忘记需要的是主动思考和主动学习的能力。耐得住思考,入门这行没有什么难度。至于深入,那需要静下来,看书,找资料,自己学习总结理解。

什么是驱动

简单说驱动的作用:就是让设备在操作系统上可以正常运行起来,基于特定协议完成一定功能。

好比都用WINDOS,你来学这一行,我相信你一定给WINWOS装过驱动,比如刚装好PC系统后的网卡驱动,比如串口驱动,就是想让操作系统认可这个设备。

入门驱动需要哪些基础?

想说真的驱动不难,是很多新手可能会认为我说这句话是自己吹

然而,完成一个简单的LED驱动就真的入门了。

为什么:完成这个驱动,你需要会编译内核完成这个驱动,你需要会编译驱动完成这个驱动,你需要会操作外设完成这个驱动,你需要会让操作系统跑起来。完成这个驱动,你需要会一些shell指令

完成这个驱动,你可能会了环境搭建,三者互ping。。。。。。

一个LED驱动,也是入门的唯一条件

看看下面这个驱动有哪些?头文件:写过C程序都知道,肯定需要头文件

特定的格式:既然你写的是linux操作系统的驱动,那肯定需要遵循linux系统的特殊约定,你之前写C没看到过的格式,就是linux下驱动需要遵循的。

LED外设操作:驱动要实现一定功能,对于点灯,需要会看芯片手册,使GPIO输出特定电平。

使用Liuux系统API:一些函数使操作系统提供给开发者的,比如register_chrdev来注册一个字符设备。

以下驱动来自:原1期到2期第一个驱动。

#include #include #include #include #include #include #include #include #include #include static struct class *firstdrv_class; static struct class_device *firstdrv_class_dev; volatile unsigned long *gpfcon = NULL; volatile unsigned long *gpfdat = NULL; static int first_drv_open(struct inode *inode, struct file *file) { //printk("first_drv_open\n"); /* 配置GPF4,5,6为输出 */ *gpfcon &= ~((0x3


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3