logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux内核--链表结构

与list_for_each不同,list_for_each遍历的是链表节点,而list_for_each_entry遍历的是由链表节点串起来的结构体链表。list_del:删除链表中的entry节点,entry节点的前驱后继指针指向LIST_POSITION1和LIST_POSITION2两个特殊值,这样设置是为了保证不在链表中的节点项不可访问,对LIST_POSITION1和LIST_POSI

#链表#linux#数据结构
Linux内核启动代码之__create_page_tables函数分析

在分析__create_page_tables函数之前,需要知道以下的知识。1、head.S首先确定了processortype和 machine type,之后就是创建页表。通过前面的两步,我们已经确定了processortype 和m...

深入理解linux内核v4l2框架之videobuf2

Videobuf2框架1. 什么是videobuf2框架?它是一个针对多媒体设备的v4l2兼容驱动框架,是用户空间应用程序和设备驱动的中间层。它为驱动提供更为底层的模块化的内存管理功能。它能够使得驱动开发变得简单,减少代码量,帮助合理的连续的实现驱动当中的v4l2...

深入理解linux内核v4l2框架之videobuf

Videobuf下面来介绍以下videobuffer相关的一些东西。V4L2核心api提供了一套标准的方法来处理视频缓冲,这些方法允许驱动实现read(),mmap(), overlay()等操作。同样也有方法支持DMA的scatter/gather操作,并且支持vm...

Linux内核驱动之read和write

搜索公众号:itxxgh  (IT学习干货),全公益,免费,定期,提供,《IT学习教程》。不会骚扰大家,只需轻点关注,也会传播《中华传统文化》传播正能量,扫码关注读和写方法都进行类似的任务, 可以同时介绍它们:ssize_t read(struct fi...

linux内核整体架构

操作系统属于软件范畴,负责管理系统的硬件资源。OS具备的功能:1.为应用程序提供执行环境。2.为多用户和应用程序管理计算机的硬件资源。3.虚拟化功能。4.支持并发。

#linux#架构#运维
c语言中printf 函数不定长参数的实现

, 可变参数的函数必须有一个参数表示参数的个数, 才能让编译器知道压栈多少参数, 以及函数返回时弹出多少个参数, 我们在fmt字符串中提取’%‘的个数, 以及针对’%'后面不同的字符来处理。第一个参数ap, 就是刚刚提到的va_list类型, 第二个参数A, 就是一个确定的类型, 也就是"…va_start(ap, A)宏将ap初始化,以便随后被va_arg()和va_end()使用,必须先调用。

#c语言#开发语言
并查集介绍

一、并查集定义并查集是一种树型的数据结构,用于处理一些不相交集合(disjoint sets)的合并及查询问题。并查集通常包含两种操作查找(Find):查询两个元素是否在同一个集合中合并(Union):把两个不相交的集合合并为一个集合基本原理:每个集合用一个树来表示(不一定是二叉树),树根的编号就是整个集合的编号,每个节点存储它的父节点,p[x]表示x的父节点。问题1:如果判断树根。p[x] ==

#c++
哈希表的介绍

基本概念哈希表可以存储各种类型的数据,当我们从哈希表中查找所需要的数据时,理想情况是不经过任何比较,一次存取便能得到所查记录,那就必须在记录的存储位置和它的关键字之间建立一个确定的对应关系 f,使每个关键字和结构中一个唯一的存储位置相对应。(关键字就是所要存储的数据,存储位置相当于数组的索引)。哈希表常用的两种存储方法:1.开放寻址法 2.拉链法拉链法:首先对关键码集合用散列函数计算散列地址,具有

#散列表#数据结构#哈希算法
stm32内存映射

如图是一张stm32的内存映射图,其中代码区是从0x0800 0000开始的,他的结束地址是0x0800 0000加上实际芯片的flash大小,他的ram的起始地址是0x2000 0000,然后结束地址依然是加上芯片实际的ram大小。注意:代码区是在rom(flash)中,数据区(.bss段和.data段)在ram区stm32的flash地址起始于0x08000000,结束地址是0...

    共 19 条
  • 1
  • 2
  • 请选择