
Linux内核
文章平均质量分 95
Bin Watson
这个作者很懒,什么都没留下…
展开
-
Linux内核 LCD 驱动程序框架
framebuffer帧缓冲设备(简称fb)是Linux内核中虚拟出的一个设备,属于字符设备;它的主设备号为FB_MAJOR=29,次设备号用来区分内核中不同的framebuffer。Linux内核中最多支持32个framebuffer,设备文件位于/dev/fb*。...转载 2022-07-30 11:07:19 · 1751 阅读 · 0 评论 -
Linux内核总线系统 —— 通用总线和平台设备
device.h>/*兄弟结点链表中的结点*/structklist_nodeknode_driver;/*在父总线上的位置*//*...省略...*/structbus_type*bus;/*所在总线设备的类型*/structdevice_driver*driver;/*分配当前device实例的驱动程序*/void*driver_data;/*驱动程序的私有数据*/void*platform_data;层次关系。...原创 2022-07-27 21:42:29 · 1246 阅读 · 0 评论 -
Linux内核 struct resource 结构体
但是CPU通常并没有为这些已知的外设I/O的物理地址分配虚拟地址,所以驱动程序并不能直接通过物理地址来访问I/O的地址资源,而必须将它们映射到核心虚拟地址空间(通过页表),然后才能根据映射所得到的核心虚拟地址范围,通过访问指令来访问这些I/O内存资源。典型地,如x86处理器为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"I/O端口空间",CPU通过专门的I/O指令(如x86的IN和OUT指令)来访问这一空间中的地址单元。......转载 2022-07-27 20:46:49 · 4076 阅读 · 0 评论 -
Linux内核输入子系统事件分析
输入系统协议用类型types和编码codes来表示输入设备的值并用此来通知用户空间的应用程序。这篇文档对这些类型和编码进行了说明并且指出什么时候和如何使用这些类型和编码。一个单一的硬件事件可以产生多个输入事件,每个输入事件包含一个单一数据项的新的数据值。EV_SYN是一个特别的事件类型,它用来把同一时刻产生的多个输入数据分割为多个数据包。在下面的描述中,术语事件(event)是指一个涵盖类型,编码和参数值的单一输入事件。...转载 2022-07-26 21:53:57 · 1465 阅读 · 0 评论 -
Linux内核输入子系统框架
整个输入子系统的框架就如上图所示输入子系统分为两层,上层为input层,也就是核心层。应用程序操作时与核心层进行交互。核心层会将自己的file_operations结构体替换成下层input_handler中的file_operations。从而使应用程序可以间接访问到input_handler的file_operations。handler该部分负责完成驱动的处理操作;dev该部分负责与硬件设备进行交互工作;它们之间通过一个handle的数据结构相连在一起。......原创 2022-07-26 11:43:13 · 453 阅读 · 0 评论 -
Linux内核poll机制分析
本篇主要是进行poll内核实现,调用流程的分析。应用程序调用poll()后,首先会进入内核的sys_poll()函数asmlinkage long sys_poll(struct pollfd __user *ufds, unsigned int nfds, long timeout_msecs)这个函数主要完成两个部分,第一部是将应用程序传递下来的时间(poll的第三个参数timespec),从毫秒单位转为节拍单位。 s64 timeout_jiffies; if (timeout原创 2022-05-07 20:24:10 · 915 阅读 · 0 评论 -
Linux内核中断系统结构——软中断
其实现实际上等同于sleep_on。原创 2022-07-18 21:15:37 · 1523 阅读 · 0 评论 -
Linux异常(中断)处理体系结构
通过上面的分析我们大致弄明白了ARM架构下Linux整个的异常处理流程。Linux系统启动时,会在函数中调用一些列初始化函数包括trap_init函数。trap_init函数完成的工作将中断向量表拷贝到0xffff0000处,这个地址是我们在编译内核时指定的。也不一定是0xffff0000,根据不同的芯片可能会选择中断向量表的存放地址。例如s3c2440芯片就规则了中断向量表存放的地址为0x00000000或0xffff0000两个地址,通过配置寄存器来选择不同的地址。...原创 2022-07-17 21:39:05 · 1800 阅读 · 0 评论 -
内核makefile详解
内核镜像的分类我们经常能看到内核在编译完成后生产各种映像文件,如:Image 、zImage、bzImage等。其实最开始出现的是 Image,就一个普通的内核镜像。后来为了节省空间,有了 zImage,进行了压缩可以节省空间。那么uImage又是什么的?它是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage没区别。几种linux内核文件的区别:1、vmlinux :编译出来后未压缩最原始原创 2022-05-23 01:09:49 · 2748 阅读 · 0 评论