【Linux驱动学习--HDMI开发(二)HDMI驱动源码分析(RK平台)】教程文章相关的互联网学习教程文章

Linux内核源码分析 -- /dev/mem【代码】

源码版本:Linux kernel 1.0 分析字符设备 /dev/mem 的驱动程序 既然是字符设备,万物皆文件,先找 file_operations 结构 struct file_operations mem_fops static struct file_operations mem_fops = {memory_lseek,read_mem,write_mem,NULL, /* mem_readdir */NULL, /* mem_select */NULL, /* mem_ioctl */mmap_mem,NULL, /* no special open code */NULL, /* no special release code */NULL /* fsync */ };支持 read wri...

Linux Kernel信号处理机制源码分析【代码】

Linux Kernel信号处理机制源码分析 信号(Signal)是一种比较原始的IPC(Inter-Process Communication,进程间通信)机制。本文主要是进行源码的分析,阅读本文的前提是对Linux的信号机制有所了解。 术语概览信号(Signal) 信号屏蔽/阻塞(Block):一个进程可以选择阻塞/屏蔽一个信号。然后对于其他进程向自己发送的这个信号,就直接忽略。直到不再阻塞,才能接收到新的信号。 经典/不可靠(Regular)信号:编号范围在[1,31]的信...

高通平台Android源码分析之Linux内核设备树(DT - Device Tree)【代码】

刚开始接触Android源码的时候,发现在kernel里面多了一种dts文件,因为当初自学Linux时和在第一家公司做物联网模型时都是用的比较老的内核,内核代码还比较混乱,没有采用dts这种方便简洁的格式。后面才知道这是因为Linus的一句”this whole arm thing is a fucking pain in ass“促进改革的,记得Linux早期代码里面板级细节都是在C文件中描述的,代码就显得十分臃肿和混乱。如此优化之后就显得简洁多了,并且也更易于学习、移植。...

Linux驱动学习--HDMI开发(二)HDMI驱动源码分析(RK平台)【代码】【图】

目录 一、引言 二、驱动框架 ------> dts节点 ------> HDMI DDC 驱动 ------> HDMI HDCP驱动 ------> HDMI CEC驱动 ------> HDMI 主设备驱动 一、引言 前一篇文章简单介绍了一下HDMI的整体结构,从硬件到协议,可以看到,确实包含了很多东西,这篇文章,就从驱动源码的角度,来分析一下HDMI 二、驱动框架 整体框架分析 先来回顾一下几个名词 HDCP: HDCP的全称是High-bandwidthDigital Content Protection,也就是“高带宽数字内容保...

linux内存源码分析 - 内存回收(匿名页反向映射)【转】【代码】

转自:https://www.cnblogs.com/tolimit/p/5398552.html 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述看完了内存压缩,最近在看内存回收这块的代码,发现内容有些多,需要分几块去详细说明,首先先说说匿名页的反向映射,匿名页主要用于进程地址空间的堆、栈、还有私有匿名共享内存(用于有亲属关系的进程),这些匿名页所属的线性区叫做匿名线性区,这些线性区只映射内存,不映射具体磁盘上的文件。匿名页的反向...

Linux内核源码分析 -- 同步原语 -- 自旋锁 spinlock【代码】

Linux内核源码分析 -- 同步原语 -- 自旋锁 spinlock_t typedef struct spinlock {union {struct raw_spinlock rlock; #ifdef CONFIG_DEBUG_LOCK_ALLOC # define LOCK_PADSIZE (offsetof(struct raw_spinlock, dep_map))struct {u8 __padding[LOCK_PADSIZE];struct lockdep_map dep_map;}; #endif}; } spinlock_t;如果一个处理程序尝试执行受自旋锁保护的代码,那么代码将会被锁住,直到占有锁的处理程序释放掉。 自旋锁 一共有两种...

Linux2.6.9内核源码分析--eventpoll【代码】

Linux2.6.9内核源码分析–eventpoll eventpoll epoll分为三个系统调用: long sys_epoll_create(int size); long sys_epoll_ctl(int epfd, int op, int fd, struct epoll_event __user *event); long sys_epoll_wait(int epfd, struct epoll_event __user *events, int maxevents, int timeout); long sys_epoll_create(int size) 参数说明: 输入参数: int sizeIt opens an eventpoll file descriptor by suggesting a storage o...

Linux内核源码分析

Linux源码下载: https://www.kernel.org/ https://git.kernel.org/ Linux内核源码阅读以及工具(转): https://blog.csdn.net/kkwant/article/details/82795659

Linux SPI 驱动分析(2)— 框架层源码分析【图】

目录 1、spi_alloc_master 2、spi_register_controller 2.1、spi_init_queue 2.2、spi_start_queue 3、spi_alloc_device 4、spi_add_device 5、spi_new_device 6、spi_register_board_info 7、spi_message_init 8、spi_message_add_tail 9、spi_async 9.1、spi_queued_transfer 9.2、spi_pump_messages 9.2.1、spi_transfer_one_message 10、小结 上一篇文章(Linux SPI 驱动分析(1)— 结构框架)介绍了 SPI 相关的 Framework ...

tcp/ip 协议栈Linux源码分析九 IPv6分片ip6_fragment 分析

内核版本:3.4.39 IPv6的分片流程和IPv4基本一致,这一点内核源码作者也说了。流程比较简单,分片的时候判断是否满足快速分片,满足的话直接一个接一个加上分片扩展选项发送出去,不满足的话就只能走慢速分片通道了,这时候需要重新分配每一个skb,然后从原始SKB报文那里复制数据发送出去。int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *)) {struct sk_buff *frag;struct rt6_info *rt = (struct rt6_info...

linux源码分析与探索04-进程与进程调度【图】

进程四要素:执行的程序;堆栈空间;内核中的户口-线程也有的;用户空间。