摘要:一.系统功能框架: U-boot : 启动内核 linux kernel: 启动应用 应用: open,read,write 都是通过C库实现,汇编就相当于swi val,引发中断,通过系统调用接口在异常中断调用不同处理函数(VFS)。 二.字符设备驱动框架: 1.编写驱动:open , read,
阅读全文
摘要:1.U-Boot启动内核的过程可以分为两个阶段: 1)第一阶段的功能 硬件设备初始化 加载U-Boot第二阶段代码到RAM空间 设置好栈 跳转到第二阶段代码入口 2)第二阶段的功能 初始化本阶段使用的硬件设备 检测系统内存映射 将内核从Flash读取到RAM中 为内核设置启动参数 启动内核 关于ub
阅读全文
摘要:s3c2440的i2c控制器驱动(精简DIY),直接上代码,注释很详细: 附一份测试程序: Make File:
阅读全文
摘要:1. 框架1.1 硬件协议简介1.2 驱动框架1.3 bus-drv-dev模型及写程序a. 设备的4种构建方法a.1 定义一个i2c_board_info, 里面有:名字, 设备地址 然后i2c_register_board_info(busnum, ...) (把它们放入__i2c_board_
阅读全文
摘要:仿照内核的自带UVC(usb video class)驱动程序写的一版简化驱动,仅供学习,实际项目开发中应该尽量使用内核自带的驱动,除非内核自带的驱动不支持此款硬件才需要自己写驱动。 下面就直接上代码了,要根据自己的设备信息修改相关配置参数。
阅读全文
摘要:linux系统上插上USB摄像头设备后,内存就会有相应的设备描述符信息,后期可以根据这些信息进一步写驱动程序。 流程:Device(设备) -> Configuration(配置) -> IAD I/F(接口联合体描述符-对接口的管理,比如数量和调用顺序等) 查看UVC 1.5 Cloass Spe
阅读全文
摘要:UVC: USB Video ClassUVC驱动:drivers\media\video\uvc\ uvc_driver.c分析:1. usb_register(&uvc_driver.driver);2. uvc_probe uvc_register_video vdev = video_dev
阅读全文
摘要:本篇仿照vivi.c 写虚拟视频驱动,代码(myvivi.c+fillbuf.c+Makefile)如下: // myvivi.c /* 仿照vivi.c */ #include <linux/module.h> #include <linux/delay.h> #include <linux/er
阅读全文
摘要:一、通过指令 "strace -o xawtv.log xawtv" 得到以下调用信息:// 1~7都是在v4l2_open里调用1. open2. ioctl(4, VIDIOC_QUERYCAP // 3~7 都是在get_device_capabilities里调用3. for() ioctl
阅读全文
摘要:这段时间开始搞安卓camera底层驱动了,把以前学的Linux视频驱动回顾一下,本篇主要概述一下vfl2(video for linux 2). 一. V4L2框架: video for linux version 2虚拟视频驱动vivi.c分析:1.分配video_device2.设置3.注册:v
阅读全文