摘要:
分配 释放 __find_buddy_pfn,去寻找page对应的buddy pfn; 寻找的逻辑是 异或 (1 << order); 也就是对 (1 << order) 这一个bit做取反操作(和1异或相当于是取反),其余的bit(和0异或保持原值) 不变化; 由于互为buddy的page,必定是 阅读全文
摘要:
前言 不是特别懂,但是先把自己目前的理解写下来(甚至目前的有些理解都是错的),随着时间的积累再丰富; 内存模型 有三种内存模型: Flat Memory:所有内存都是连续的,通过数组管理所有的page,数组的下标就是pfn;所有可以很简单的pfn下标找到对应的page,page可以很简单的找到pfn 阅读全文
摘要:
slab的单位是object,而不是byte 阅读全文
摘要:
前言 结合应用层demo + vim2m.c 详细分析各个ioctl细节 VIDIOC_REQBUFS QUERYBUF V4L2_MMAP VIDIOC_STREAMON VIDIOC_QBUF VIDIOC_DQBUF VIDIOC_STREAMOFF 阅读全文
摘要:
v4l2 test driver: vimc解析 前言 v4l2驱动框架分为:控制流+数据流,vimc是一个很好学习这两点的驱动; vimc不需要硬件支持,通过软件模拟了:支持isp处理的sensor + csi (虚线代表可以通过media ctl修改topology) 控制流体现在:topolo 阅读全文
摘要:
1. 问题背景 想提升vpu编解码帧率,在vpu的设备树节点添加dma-coherent属性,vpu编解码timeout(失败); 2. 所做尝试 2.1 vpu内存分配接口 b->virt = dma_alloc_coherent(dev, PAGE_ALIGN(size), &b->dma, G 阅读全文
摘要:
gpio && pinctrl 阅读全文
摘要:
linux mac 阅读全文
摘要:
dma 阅读全文
摘要:
前言 先知整个流程:如何创建一个workqueue、一个work queue入一个workqueue之后,work对应的func怎么被执行; 再扣细节:__alloc_workqueue_key中WQ_UNBOUND flag有什么作用?max_active的作用是什么?worker的动态管理? 数 阅读全文