
驱动开发
文章平均质量分 86
驱动开发学习笔记
小Caicai
这个作者很懒,什么都没留下…
展开
-
三、字符设备驱动注册新接口
一、register_chrdev()方式注册字符设备驱动 register_chrdev(unsigned int major, const char *name,const struct file_operations *fops); 但其实这个函数是linux版本2.4之前的注册方式,它的原理是: (1)确定一个主设备号 (2)构造一个file_operations结构体, 然后放在chrdevs数组中 (3)注册:register_chrdev 然后当读写字符设备的时候,就会根据主设备号从chrd原创 2021-11-11 17:14:09 · 1081 阅读 · 0 评论 -
二、字符设备驱动基础
进行驱动学习之前要先了解一下我们应用程序在使用硬件设备时的一个工作流程。应用程序通过系统提供的API(open、read、write、close等接口)去调用硬件驱动,再由驱动去操作硬件。整理的形成了操作系统的不同层次:应用层 → API → 设备驱动 → 硬件。在驱动源码中我们需要去提供操作系统提供的API的函数实体。这些函数实体要封装成一个fiel_opreation结构体。这个结构体变量的元素主要是函数指针。用来挂接实体函数的地址。每一个驱动程序都需要一个该结构体类型的变量用以向内核注册时提供该变量原创 2021-11-11 17:12:36 · 429 阅读 · 0 评论 -
一、驱动开发前导
一、驱动开发前导 1. 前提条件 1.正常运行linux系统的开发板,开发板的内核(zImage)必须是自己编译的(驱动版本与内核版本移植)。 2.内核源码树:也就是在自己编译内核(zImage)时使用的内核源码。 3.nfs挂载的rootfs,在Ubuntu主机中需要搭建一个nfs的服务器(这样会更方便,但不是必须,若不搭建就要每次重新烧录内核、根文件系统)。 2.开发步骤 1.驱动源代码的编写、Makefile的编写、驱动源代码的编译。 2.insmod装载模块,测试模块是否正常运行,rmmod原创 2021-11-11 17:10:53 · 1275 阅读 · 0 评论