linux
文章平均质量分 94
oqqYuJi12345678
这个作者很懒,什么都没留下…
展开
-
基于Ti Omap3x 分析v4l2架构
1 概述本文将基于Ti Omap3x这个典型的实例来分析v4l2在具体media场景中的应用。通过分析app层的行为以及driver层的实现来对整个多媒体框架有一个大概的认识。内容主要包括主要包括v4l2-core、meida framework。2. 基本原理分析2.1 v4l2-core2.1.1 应用视角先从应用的角度来看如何使用v4l2吧:上面的框图是对v4l2的一个典型应用。左边的框图是一个video 采集的基本流程,不涉及对子设备的操作,实际使用过程中融合了me.原创 2022-04-11 19:46:40 · 1622 阅读 · 1 评论 -
linux ko模块动态加载源码分析
linux内核模块分两种形态,一是静态编译进内核的模块,二是用insmod命令动态加载的模块,也就是后缀名为KO的文件。这里主要讨论linux内核动态加载模块的过程,也就是KO文件被动态加载进内核,并运行的过程。后缀为KO的文件其实是一种ELF格式文件,很类似于ELF目标文件(.o文件),但是又与ELF目标文件有一点小区别。使用readelf工具可以看到,KO文件里有一个叫.gnu.linkonce.this_module的段,而普通目标文件是没有这个段的。这个段的内容其实是一个struct modul原创 2021-01-26 22:10:18 · 3146 阅读 · 0 评论 -
linux kthread_worker
在workqueue中可以使用highpri workqueue来实现高优先级,但是这种方法有个缺陷:如果work的执行时间比较长的话,还是会被normal workqueue的其它任务打断。原因是highpri workqueue只是调整了线程的nice值,只是获得更多的CPU时间片,而不是占有CPU直到任务执行完毕。所以可以用其他的一些方法来实现高优先级的worker。通过 kthread_worker 和 sched_setscheduler设置为SCHED_FIFO,从而将线程的优先级设置为RT原创 2020-09-09 22:15:46 · 471 阅读 · 0 评论