20 sysfs
sysfs定义sysfs 是 Linux 内核提供的一个 虚拟文件系统(类似 /proc),挂载在 /sys 下 作用: 展示内核对象(kobject)及其属性给用户空间 提供用户态访问和控制硬件及内核状态的接口 支持驱动和设备管理、模块信息查看、电源管理等 特点: 虚拟文件系统,不占用实际磁盘空间 每个 kobject 对象在 sysfs 中对应一个目录 属性(attribute)以文件的形式暴露,读写这些文件会触发内核的回调函数 结构 目录 作用 /sys/class/ 按设备类别(class)组织的设备,如 net、gpio、leds 等 /sys/bus/ 按总线类型组织设备,如 pci、usb、platform 等;还包含驱动/设备信息 /sys/devices/ 所有 struct device...
10 Linux内核定时器
Linux内核定时器 在编写驱动的时候,可能也会用到定时器,比如按键消抖…由于驱动的代码是在内核态,所以就需要使用内核态的定时器,而不是用户态的定时器 Linux内核的定时器相对于以前STM32用的定时器,有以下区别: 内核定时器是软件定时器,采用系统时钟实现,并不是硬件定时器 定时器超时是由软件设置和管理的,通过内核或者应用程序来控制,而回调函数的执行是在预定的时间点或者时间间隔后发生的,不算中断 内核定时器不是周期运行的,超时后就会停止,需要手动再次开启(如果还需要用的话) 1.基本数据结构Linux内核使用如下的结构体来描述一个定时器: 12345678struct timer_list { struct list_head entry; unsigned long expires; /* 定时器超时时间,单位是节拍数 */ struct tvec_base *base; void (*function)(unsigned long); /* 定时处理函数 */ unsigned long data; /*...
19 有线以太网
有线以太网(Ethernet) Etheret这个词一般指的就是有线以太网,若涉及无线网络,通常会使用Wi-Fi或其他明确术语 嵌入式网络概述之前总是听到“网卡”这个词,实际上他是个非常笼统的概念包含了多个硬件。实际上需要以下的具体硬件来实现Ethernet: MAC控制器:它负责OSI体系中数据链路层的工作(以太网帧的封装、差错与流量控制、MAC地址寻址…) MAC可能位于SoC的内部,也可能外接。如果说一个SoC具备网络功能,一般指的SoC内部有MAC外设 PHY(物理层收发器)芯片:它负责OSI体系中物理层的工作: PHY一般位于SoC外部 信号转换:MAC层的数字信号 <—->...
14 阻塞与非阻塞IO
Linux阻塞与非阻塞IO阻塞与非阻塞的区别 阻塞:在对fd执行IO操作时,若不能获得资源,则挂起进程直到满足可操作的条件后再进行操作。被挂起的进程进入睡眠状态,被从调度器的运行队列移走,直到等待的条件被满足 非阻塞:在不能对fd进行IO操作时,并不挂起,它要么放弃,要么不停地查询,直至可以进行操作为止 应用层的代码上两者的区别: 1234567// 阻塞IOchar buf;fd = open("/dev/ttyS1", O_RDWR);...res = read(fd,&buf,1);// 只有读到数据了才会返回 if(res==1) printf("%c\n", buf); 12345678// 非阻塞IOchar buf;fd = open("/dev/ttyS1", O_RDWR|O_NONBLOCK);...while(read(fd,&buf,1)!=1){continue;} /* 串口上无输入也返回,因此要循环尝试读取串口...
15 input子系统
...
13 FrameBuffer设备
FrameBuffer设备









