摘要:RK3588平台同时预览5路H265 4K摄像头,出现其中一路画面卡死异常,从log分析看出现了上层拿到的帧序乱了,先执行的uvc_video_next_buffers 先写的1890 后写的1891,但是add tail on buffer queue 是先执行的1891 后执行的1890: 01
阅读全文
摘要:Android 系统开发时有些数据需要同步到上层应用进行UI显示,如果是定制功能且数据量不大,可以考虑通过文件节点方式在应用和驱动之间进行通信。 以下介绍两种文件节点的添加方法: 一、/proc/节点: #include <linux/uaccess.h> #include <linux/proc_
阅读全文
摘要:本文分析的原代码版本: 2.6.24.4 kfifo的定义文件: kernel/kfifo.c kfifo的头文件: include/linux/kfifo.h kfifo是内核里面的一个First In First Out数据结构,它采用环形循环队列的数据结构来实现,提供一个无边界的字节流服务,并
阅读全文
摘要:一.引言 在日常程序开发中不免遇到类似空指针操作导致程序崩溃的问题,所以需要一定的手段去定位bug,而断点调试是普遍使用的技巧,比如Windows中用VC++的debug模式进单步运行、断点调试等,而且是图形化操作界面很友好,但在Linux系统中使用的是没有图形界面的调试工具-GDB(听说eclip
阅读全文
摘要:一、Linux输入子系统的结构: 二、触摸屏驱动代码: s3c_ts.c #include <linux/errno.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/slab.h> #include <li
阅读全文
摘要:1、在厂商提供的原始驱动代码上进行修改移植(基于linux2.6.22.6): (1)加入所需头文件: (2)不强制判断芯片版本等信息: (3)设置中断触发类型为上升沿: (4)根据s3c2440和dm9000的 datasheet 设置对应寄存器,去掉 #ifdef MODULE判断,默认作为模块
阅读全文
摘要:(一) 移植 qt5.6.3 一、qt简介: Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object C
阅读全文
摘要:1.wm8976驱动程序: Makefile
阅读全文
摘要:一、音频架构概述 (1)ALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http://www.alsa-project.org/。在内核设备驱动层,A
阅读全文
摘要:1.Linux进程与线程() 进程:通过fork创建子进程与创建线程之间是有区别的:fork创建出该进程的一份拷贝,创建时额外申请了新的内存空间以及存储代码段、数据段、BSS段、堆、栈空间, 这个新进程拥有自己的变量和自己的PID,它的时间调度是独立的,它的执行几乎完全独立于父进程,进程可以看成一个
阅读全文
摘要:一、socket()函数 int socket(int domain, int type, int protocol); domain:即协议域,又称为协议族(family)。常用的协议族有,AF_INET、AF_INET6、AF_LOCAL(或称AF_UNIX,Unix域socket)、AF_RO
阅读全文
摘要:一、LCD驱动框架: 1.分配一个fb_info结构体:s3c_lcd = framebuffer_alloc(0,NULL); 2.设置fb_info(s3c_lcd): ID、固定参数、可变参数、设置操作函数 及 其他设置 3.注册:register_framebuffer(s3c_lcd);
阅读全文
摘要:platform总线是一种虚拟的总线,相应的设备则为platform_device,而驱动则为platform_driver。Linux 2.6的设备驱动模型中,把I2C、RTC、LCD等都归纳为platform_device。总线将设备和驱动绑定,在系统每注册一个设备的时候,会寻找与之匹配的驱动;
阅读全文
摘要:一.Linux input system框架: 1.由输入子系统核心层(input.c),驱动层(gpio_keys.c)和事件处理层(Event Handler)三部份组; 2.主要的三个结构体:input_dev 结构体,一个input_dev结构体对象代表着一个输入设备; input_hand
阅读全文
摘要:SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。 SPI接口是在CPU和外围低速器
阅读全文
摘要:一、bootloader 目标:启动内核 基本功能: ①初始化硬件:关看门狗、设置时钟、设置SDRAM、初始化NAND FLASH ②image比较大需要重定位到SDRAM ②将内核从NAND FLASH读到 SDRAM ③设置“要传给内核的参数” ④跳转执行内核 启动时间优化: ①提高CPU频率:
阅读全文
摘要:一.下载U-boot源码:ftp://ftp.denx.de/pub/u-boot/ 二.uboot的启动过程: 部分硬件初始化——>加载完整uboot到RAM——>跳转到第二阶段入口开始执行,整个过程最重要的两个文件: /arch/arm/cpu/arm920t/start.S,涉及到特定硬件设备
阅读全文
摘要:一.编译环境搭建: 1.linux源码下载:https://www.kernel.org/ (最新) https://mirrors.edge.kernel.org/pub/linux/kernel/ (历史版本)2.安装交叉编译工具链: ①手动下载配置工具链: (1):解压 arm-linux-g
阅读全文
摘要:一、异步通知概念: 异步通知是指:一旦设备就绪,则主动通知应用程序,应用程序根本就不需要查询设备状态,类似于中断的概念,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达。下面我们就看一下在linux中机制的实现方式。 在linux中,
阅读全文
摘要:中断是指在CPU正常运行期间,由于内外部事件或由程序预先安排的事件引起的CPU暂时停止正在运行的程序,转而为该内部或外部事件或预先安排的事件服务 的程序中去,服务完毕后再返回去继续运行被暂时中断的程序。Linux中通常分为外部中断(又叫硬件中断)和内部中断(又叫异常)。 单片机中断处理: ①分辨中断
阅读全文