Linux 内核驱动
东东7_7
这个作者很懒,什么都没留下…
展开
-
驱动模块的编写和驱动入口函数的本质
驱动模块的编写#include <linux/init.h> //使用内核中的头文件#include <linux/module.h>static int demo_init (void) //自己定义二点函数{ printk ("hellow world\n"); return 0;}module_init (demo_init); //使用宏来作为入口地址static void demo_exit (void) { printk("goodbey wo原创 2020-10-18 11:19:29 · 439 阅读 · 0 评论 -
Linux字符设备文件
申请字符设备第一种方法:查看系统中哪个设备号属于空闲cat /proc/dev我们可以查看字符设备,块设备int register_chrdev_region(dev_t from,unsigned count, const char *name); from: 待申请的设备号 count: 待申请的设备号数目(次设备号) name: 设备名称(出现在/proc/devices) 返回: 成功返回0,失败返回负值优点:在申请设备号之前,可以提前创原创 2020-11-08 21:26:19 · 1003 阅读 · 0 评论 -
设备驱动的分类和设备文件
设备驱动的分类字符设备驱动:设备的读写访问按照一定的字符流,一个字节字节的按顺序读写,这样的是字符设备:如led,lcd,鼠标,键盘,触摸屏,各种传感器等等,驱动字符设备块设别驱动:设备读写访问以逻辑块为单位访问,不一定按照一定顺序访问,想访问哪个逻辑块就访问,这样的设备叫块设备:SD卡,EMMC网络设备驱动:进行通信的设备,对应驱动,在dev/目录下是找不到的文件的定义参考另一篇文章https://blog.csdn.net/dongdong7_77/article/details/10639原创 2020-10-31 21:07:58 · 447 阅读 · 0 评论 -
内核双向循环链表
内核双向链表的数据结构他只有两个指针域,没有数据域,但是这样他的通用性得到了优化,但是这样没有数据,有什么意义呢,我们先来看看内核提供的接口函数struct list_head{ struct list_head *next,*head;};链表的创建函数,创建一个结点,并初始化#define LIST_HEAD_INIT(name) { &(name), &(name) } #defi原创 2020-10-28 23:33:58 · 144 阅读 · 0 评论 -
上层系统调用函数封装的本质
内核系统调用的过程系统调用是操作系统提供给用户的一组接口,每个系统调用都有一个对应的系统调用函数来完成相应的工作,用户通过这个接口向操作系统申请服务,如访问硬件资源,管理进程等,但是因为用户运行在用户空间,而系统调用运行在内核空间,因此用户程序不能之间调用函数,我们常见的open,fork,write都不是真正的调用函数,他们都只是c库,他们在函数中执行一个svc指令,使系统进入内核态接着在内核中进行一系类的判断,判断出哪个系统调用,再转到真正的调用函数,完成响应功能首先我们开内核中的文件vi inu原创 2020-10-19 20:46:54 · 203 阅读 · 0 评论 -
linux磁盘与文件系统管理
前言管理好自己的磁盘和文件系统是非常重要的,可以有效的节约资源EXT2文件系统EXT2是linxu中最传统的文件系统,他其中最重要的就是inode,block,superblocksuperblcok:记录文件系统的整体信息,包括各种inode,block的总量,剩余量,使用量,以及文件系统格式的相关信息inode:记录文件属性,一个文件最少占用一个inode号,同时记录文件数据所在的block号码block:实际记录文件的内容,若文件过大则会,则会占用多个block这种访问模式我们称为索引原创 2020-05-27 23:14:22 · 335 阅读 · 0 评论 -
Linux内核驱动Kconfig的编写方法
前言内核配置的目的是裁剪C代码,C代码编译一般由Makefile管理一个菜单有三个相关内容:1、 菜单;-----------Kconfig文件2、 Makefile;------根据 .config抽取文件3、 C代码。--------通过Makefile文件进行关联源码目录下一般都有两个文件Kconfig和Makefile,所以我们添加菜单的时候就需要去修改这两个文件,我们可以通过make menuconfig来生成图形化界面去操作他Kconfig语法他有点像makefile的编写,直接原创 2020-09-19 17:44:11 · 727 阅读 · 0 评论