随笔分类 - linux驱动
摘要:原链接:https://mp.weixin.qq.com/s/ZsGDW4UZNSsBO0jkNjKMpw 一. 概述 Linux内核源码文件繁多,搞不清Makefile、Kconfig、.config间的关系,不了解内核编译体系,编译修改内核有问题无从下手,自己写的驱动不知道怎么编进内核,不知道怎
阅读全文
摘要:一. Makefile 基础知识 1.1. makefile常见符号 $@ 表示目标文件 $^ 表示所有的依赖文件 $< 表示第一个依赖文件 $? 表示比目标还要新的依赖文件列表 1.2. 关于等于号 +=的含义显而易见,将右值增加到左边的变量基础上。空格是自动添加的。 =的含义是在右值在遍历整个M
阅读全文
摘要:#ubuntu的内核源码树,如果要编译在ubuntu中安装的模块就打开这2个 #KERN_VER = $(shell uname -r) #KERN_DIR = /lib/modules/$(KERN_VER)/build # 开发板的linux内核的源码树目录 KERN_DIR = /root/d
阅读全文
摘要:#include <linux/init.h> // __init __exit #include <linux/module.h> // module_init module_exit static int __init hello_init(void) { printk(KERN_ALERT "
阅读全文
摘要:#include <linux/init.h> // __init __exit #include <linux/module.h> // module_init module_exit #include <linux/fs.h> //file_operations #include <asm/ua
阅读全文
摘要:原文:https://blog.csdn.net/gtkknd/article/details/79975773 1.设备 1.1. Linux下的设备通常分为三类,字符设备,块设备和网络设备。 1.2. 常见的字符设备有鼠标、键盘、串口、控制台等。 1.3. 常见的块设备有各种硬盘、flash磁盘
阅读全文
摘要:#include <linux/init.h> // __init __exit #include <linux/module.h> // module_init module_exit #include <linux/fs.h> //file_operations #include <asm/ua
阅读全文
摘要:#include <linux/init.h> // __init __exit #include <linux/module.h> // module_init module_exit #include <linux/fs.h> //file_operations #include <asm/ua
阅读全文
摘要:#include <linux/init.h>// __init __exit #include <linux/module.h> // module_init module_exit #include <linux/fs.h> //file_operations #include <asm/uac
阅读全文
摘要:一. machine_desc结构体 1.1. 内核提供了一个重要的结构体struct machine_desc ,这个结构体在内核移植中起到相当重要的作用,内核通过machine_desc结构体来控制系统体系架构相关部分的初始化 2.1. 静态映射表与machine_desc关系。 2.1.1.
阅读全文
摘要:#include <linux/init.h> // __init __exit #include <linux/module.h> // module_init module_exit #include <mach/regs-gpio.h> #include <mach/gpio-bank.h>
阅读全文
摘要:#include <linux/init.h> // __init __exit #include <linux/module.h> // module_init module_exit #include <mach/regs-gpio.h> #include <mach/gpio-bank.h>
阅读全文
摘要:一.驱动模型包含什么? 1.1. 类class 1.1.2. 它能够自动创建/dev下的设备节点,不需要mknod /dev/xxx c x x创建。当然class还有其另外的作用,且自动创建设备节点的还有udev系统,udev是处于用户空间的,其自动创建设备节点也是依赖于sysfs文件系统中提供的
阅读全文
摘要:一. platform 组织架构 1.1. platform工作体系都定义在drivers/base/platform.c中 1.2. platform相关函数声明在include/linux/platform_device.h 1.3. platform.c中两个重要结构体 1.3.1. plat
阅读全文
摘要:一. misc类设备简介 1.1. 什么是misc设备 1.1.1. misc中文名就是杂项设备\杂散设备,因为现在的硬件设备多种多样,有好些设备不好对他们进行一个单独的分类,所以就将这些设备全部归属于杂散设备,也就是misc设备,例如像adc、buzzer等这些设备一般都归属于misc中 1.1.
阅读全文
摘要:一.设备驱动相关文件 1.1. 驱动框架相关文件 1.1.1. drivers/video/fbmem.c a. 创建graphics类、注册FB的字符设备驱动 fbmem_init(void) { proc_create("fb", 0, NULL, &fb_proc_fops); if (reg
阅读全文
摘要:一、什么是input输入子系统? 1.1. Linux系统支持的输入设备繁多,例如键盘、鼠标、触摸屏、手柄或者是一些输入设备像体感输入等等,Linux系统是如何管理如此之多的不同类型、不同原理、不同的输入信息的输入设备的呢?其实就是通过input输入子系统这套软件体系来完成的。从整体上来说,inpu
阅读全文
摘要:一. linux为什么需要临界段,信号量,互斥锁,自旋锁,原子操作? 1.1. linux内核后期版本是支持多核CPU以及抢占式调度。这里就存在一个并发,竞争状态(简称竟态)。 1.2. 竞态条件 发生在两个或更多线程操纵一个共享数据项时,在多处理器(MP)计算机中也存在并发,其中每个处理器中共享相
阅读全文
摘要:一.linux中断处理为什么要分为上下部 1.1. 中断处理的上半部(top half,又叫顶半部)和处理的下半部(bottom half,又叫底半部) 1.1. linux中断处理不参与调度,故中断处理时间过长会影响实时性 1.2. ISR运行时间尽可能短,但有些处理没有部分很短处理完,于是lin
阅读全文

浙公网安备 33010602011771号