随笔分类 -  07.linux_drivers

摘要:各类文件的区别与作用: 1、对于.so文件 .so文件是用户层的动态链接库,用于用户层的动态链接使用,内核态的代码同样不能直接访问。 2、对于.ko文件 obj-m = *.oobj-y = *.o上面两者的区别在于,前者才会生成ko文件,后者只是代码编译进内核,并不生成ko文件。 .ko文件是内核 阅读全文
posted @ 2018-03-09 16:46 qiynet 阅读(1090) 评论(0) 推荐(0)
摘要:1 input输入子系统整体流程 本节分析input子系统在内核中的实现,包括输入子系统(Input Core),事件处理层(Event Handler)和设备驱动层。由于上节代码讲解了设备驱动层的写法,因此在开头部分会从设备驱动层做为线索,分析输入子系统和事件处理层是如何配合的,最后从用户角度出发 阅读全文
posted @ 2018-03-04 17:41 qiynet 阅读(450) 评论(0) 推荐(0)
摘要:1.之前我们学的都是字符设备驱动,先来回忆一下 字符设备驱动: 当我们的应用层读写(read()/write())字符设备驱动时,是按字节/字符来读写数据的,期间没有任何缓存区,因为数据量小,不能随机读取数据,例如:按键、LED、鼠标、键盘等 2.接下来本节开始学习块设备驱动 块设备: 块设备是i/ 阅读全文
posted @ 2018-03-03 17:35 qiynet 阅读(459) 评论(0) 推荐(0)
摘要:1. 基本概念: linux设备驱动开发详解(宋宝华): 字符设备与块设备 I/O 操作的不同如下。 (1)块设备只能以块为单位接受输入和返回输出,而字符设备则以字节为单位。 大多数设备是字符设备,因为它们不需要缓冲而且不以固定块大小进行操作。 (2)块设备对于 I/O 请求有对应的缓冲区,因此它们 阅读全文
posted @ 2018-03-03 17:05 qiynet 阅读(319) 评论(0) 推荐(0)
摘要:在学习块设备原理的时候,我最关系块设备的数据流程,从应用程序调用Read或者Write开始,数据在内核中到底是如何流通、处理的呢?然后又如何抵达具体的物理设备的呢?下面对一个带Cache功能的块设备数据流程进行分析。 1、 用户态程序通过open()打开指定的块设备,通过systemcall机制陷入 阅读全文
posted @ 2018-03-03 16:23 qiynet 阅读(2204) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2017-07-25 13:47 qiynet 阅读(1) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2017-07-14 17:50 qiynet 阅读(0) 评论(0) 推荐(0)
摘要:- 阅读全文
posted @ 2017-07-06 17:45 qiynet 阅读(1017) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2017-06-16 20:46 qiynet 阅读(1) 评论(0) 推荐(0)
摘要:[DESCRIPTION] 计算DSI数据速率的方式,以及如何配置时钟clk的方式 [KEYWORD] dsi、data rate、mipi clk [SOLUTION] 1、DSI vdo mode下的数据速率data_rate的大致计算公式为:Data rate= (Height+VSA+VBP 阅读全文
posted @ 2017-05-02 09:43 qiynet 阅读(1042) 评论(0) 推荐(0)
摘要:拿到MT6589的版本不久,发现显示系统代码结构改变很大。做些备忘,后续不忙的时候可以继续看。 MT6589之前的MTK的Android系统显示系统同featurePhone基本一致。 先来回顾下MTK之前版本的大致结构,每个Video层,每个UI层 分别对应一个layer,再通过设置一些,区域坐标 阅读全文
posted @ 2017-05-02 09:36 qiynet 阅读(618) 评论(0) 推荐(0)
摘要:makefile 自动化变量: $@ : 规则的目标文件名 例如:main:main.o test.o g++ -Wall -g main.o test.o -o main 可以写成: main:main.o test.o g++ -Wall -g main.o test.o -o $@ g++ - 阅读全文
posted @ 2017-04-25 22:08 qiynet 阅读(445) 评论(0) 推荐(0)
摘要:将自己开发的内核代码加入到Linux内核中,需要3个步骤: 1、确定把自己开发代码放入到内核合适的位置 将demo_chardev.c文件拷贝到.../drivers/char/目录下。 demo_chardev.c [cpp] view plain copy #include <linux/ini 阅读全文
posted @ 2017-04-16 21:29 qiynet 阅读(4424) 评论(0) 推荐(0)
摘要:-- vendor/mediatek/proprietary/custom/mt6735/hal/D2/camera_3a/isp_tuning_custom.cpp -- 阅读全文
posted @ 2017-03-02 19:25 qiynet 阅读(590) 评论(0) 推荐(0)
摘要:前面, 我们已经讨论了内核所作的在队列中优化请求顺序的工作; 这个工作包括排列请求和, 或许, 甚至延迟队列来允许一个预期的请求到达. 这些技术在处理一个真正的旋转的磁盘驱动器时有助于系统的性能. 但是, 许多面向块的设备, 例如闪存阵列, 用于数字相机的存储卡的读取器、u盘等, 并且 RAM 盘真 阅读全文
posted @ 2017-02-23 23:02 qiynet 阅读(402) 评论(0) 推荐(0)
摘要:块设备驱动注册与注销 块设备驱动中的第1个工作通常是注册它们自己到内核,完成这个任务的函数是 register_blkdev(),其原型为:int register_blkdev(unsigned int major, const char *name); major 参数是块设备要使用的主设备号, 阅读全文
posted @ 2017-02-23 22:55 qiynet 阅读(342) 评论(0) 推荐(0)
摘要:上回最后面介绍了相关数据结构,下面再详细介绍 块设备对象结构 block_device 内核用结构block_device实例代表一个块设备对象,如:整个硬盘或特定分区。如果该结构代表一个分区,则其成员bd_part指向设备的分区结构。如果该结构代表设备,则其成员bd_disk指向设备的通用硬盘结构 阅读全文
posted @ 2017-02-23 22:39 qiynet 阅读(923) 评论(0) 推荐(0)
摘要:1. adb shell 2. setprop z.flash_ratio 1 3. 全黑环境下,请将手机固定,对着白墙10cm,固定. 4. 点击拍照,然后手机会自动打闪2(Duty num)次(其中不要任何人员靠近,避免影响光源). 5. 手机停止拍照以后,sd内将生成flash_nvdata. 阅读全文
posted @ 2017-02-23 15:47 qiynet 阅读(919) 评论(0) 推荐(0)
摘要:基本概念 块设备(blockdevice) 是一种具有一定结构的随机存取设备,对这种设备的读写是按块进行的,他使用缓冲区来存放暂时的数据,待条件成熟后,从缓存一次性写入设备或者从设备一次性读到缓冲区。 字符设备(Character device) 是一个顺序的数据流设备,对这种设备的读写是按字符进行 阅读全文
posted @ 2017-02-23 14:35 qiynet 阅读(441) 评论(0) 推荐(0)
摘要:GAMMA:输出/输入(光信号值) 从最明亮到最黑暗,假设人眼能够看到一定的范围,那么胶片(或CCD 等电子感光器件)所能表现的远比人眼看到的范围小的多,而这个有限的范围就是感光宽容度。 人眼的感光宽容度比胶片要高很多,而胶片的感光宽容度要比数码相机的ccd高出很多!对于sensor来说,又是如何来 阅读全文
posted @ 2017-02-22 18:09 qiynet 阅读(751) 评论(0) 推荐(0)

跳至侧栏