Linux驱动模型详解
让所有很久很久以前都走到幸福结局的时刻 1.Linux 驱动模型本节内容,重在理解。面试时,面试官很大可能会让你挑一个你熟悉的驱动讲讲,如何编写的?能回答出大概的驱动框架就可以。 1.1 字符设备驱动模型驱动初始化中涉及到一个设备描述结构的概念。在任何一种驱动模型中,设备都会用内核中的一种结构来描述,这种结构成为设备描述结构。字符设备在内核中使用struct cdev这种结构来描述。 123456789struct cdev { struct kobject kobj; struct module *owner; const struct file_operations *ops; //设备操作集 struct list_head list; dev_t dev; //设备号 unsigned int count;...
数据结构
让所有很久很久以前都走到幸福结局的时刻 写嵌入式用的到数据结构吗?看下linux内核就知道了,一堆数据结构,不学习数据结构,linux内核就看不懂了 使用数据结构是为了使代码结构更清晰,更容易把握代码结构、逻辑。 几个应用场景 “数组”。你肯定用过吧,属于数据结构“线性表”的一种形式。 “结构体”。学习过lwip可以知道从以太网上接收一堆数据后,把数据头的地址幅值给以太网包的数据结构定义的指针,可以直接使用此指针->成员变量的方式,使用接收到的数据。比使用一堆变量来利用接收到的数据方便太多了。 “队列”。热敏电阻测温,单片机用ADC测量电阻分压电压,然后对测量值用平滑均值滤波算法滤波,此时会用到“队列”,或用“环形队列”; “树”。项目中经常会使用液晶屏作为显示,其中文本菜单有时用的比较多的一种方式,其中文本菜单常用“树”结构来实现。 “栈”。就不用说了,你已经用过了,不过不是你主动用的,它隐藏在你每次函数调用、中断调用中,可能你没有意识到。 简单几个例子,说明了数据结构非常常见,这个是必须要学的,不过有些不常用,比如图。 1. ...