- 博客(36)
- 资源 (7)
- 收藏
- 关注
翻译 第12章-Bluetooth® LE Audio applications
Introducing-Bluetooth-LE-Audio-book 第12章-Bluetooth® LE Audio applications
2022-08-28 09:52:33
987
翻译 第11章-顶层蓝牙® LE Audio profile
Introducing-Bluetooth-LE-Audio-book 第11章-顶层蓝牙® LE Audio profile
2022-08-28 09:50:54
1938
翻译 第10章-音量&音频输入&麦克风控制
Introducing-Bluetooth-LE-Audio-book 第10章-音量&音频输入&麦克风控制
2022-08-27 22:13:19
1629
翻译 第9章-Telephony and Media Control
Introducing-Bluetooth-LE-Audio-book 第9章-Telephony and Media Control
2022-08-27 22:05:36
999
翻译 第5章-LC3, latency and QoS
Introducing-Bluetooth-LE-Audio-book 第5章-LC3, latency and QoS
2022-08-27 20:44:26
3160
翻译 第4章-Isochronous Streams
Introducing-Bluetooth-LE-Audio-book 第4章-Isochronous Streams
2022-08-27 18:10:14
3208
3
翻译 第2章-Bluetooth® LE audio架构
Introducing-Bluetooth-LE-Audio-book 第2章 Bluetooth® LE 音频架构
2022-08-27 17:36:13
3056
原创 8.声卡驱动06-自己实现alsa驱动-虚拟声卡-widget
平台:ubuntu 16.04,kernel版本是4.15.0, 理论任何平台都可以,甚至是android,只要能编译通过。需要完成的功能:一个codec里面可能有多个录音通道,如果要打开某一通道录音,需要怎么做?目的:就像做数学题一样,看一遍答案,以为自己看懂了,就会了,非也,真到自己去做时,不一定能做出来。那就在自己的驱动里实现一遍。本文只追求应用,不讲原理。想了解细节可以看官方文档或者看https://blog.csdn.net/droidphone/category_1118446.html。
2021-11-19 13:08:21
1931
原创 8.声卡驱动05-自己实现alsa驱动-虚拟声卡-kcontrol
平台:ubuntu 16.04,kernel版本是4.15.0, 理论任何平台都可以,甚至是android,只要能编译通过。需要完成的功能:前几篇文章完成了播放/录音功能,声卡驱动就这样完成了吗?某种意义上讲是完成了,但是如果需要控制音量怎么办?这里加一个kcontrol,实现音量控制功能。目的:就像做数学题一样,看一遍答案,以为自己看懂了,就会了,非也,真到自己去做时,不一定能做出来。那就在自己的驱动里实现一遍。本文只追求应用,不讲原理。想了解细节可以看官方文档或者看https://blog.csd
2021-11-16 21:43:02
1794
原创 8.声卡驱动04-写一个alsa应用程序
平台:ubuntu 16.04,kernel版本是4.15.0, 理论任何平台都可以,甚至是android,只要能编译通过。需要完成的功能:一个进程播放音频,一个进程录音。直接贴代码#include <stdio.h>#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/wait.h>#include <alsa/asoundlib
2021-10-27 11:14:06
954
原创 8.声卡驱动03-自己实现alsa驱动-虚拟声卡-缓存
平台:ubuntu 16.04,kernel版本是4.15.0, 理论任何平台都可以,甚至是android,只要能编译通过。需要完成的功能:传说中的回采,做过语音方案的童鞋应该能懂,就是播放的音频,录音录回去。因为是虚拟的声卡,不涉及硬件操作,也只能这样看点效果。目的:当然是为了能更直观的理解alsa驱动框架。虚拟出一个声卡,不涉及复杂的硬件操作,不涉及复杂的硬件调试,只关心数据流怎么一步一步传给应用的。1.数据是怎么交互的以playback为例驱动程序分配一个bufferAPP不断写
2021-10-27 11:09:31
5804
4
原创 8.声卡驱动02-自己实现alsa驱动-虚拟声卡-匹配
亲自动手,丰衣足食。本文目的是实现史上最简单的Linux声卡驱动。如果你是初学者,可能从其他文章了解到声卡驱动,不出意外你可能已经云里雾里了,除非你聪明绝顶(秃顶那种)。其实生成声卡的节点,子需要几个函数就可以了,它们分别是:platform:snd_soc_register_component()注册CPU DAI, snd_soc_register_platform()注册platform;codec:snd_soc_register_codec()注册CODEC DAI和CODEC;mac
2021-10-27 11:01:44
3992
2
原创 8.声卡驱动01-一些好文章
这里保存一些优秀的文章Linux ALSA声卡驱动之一:ALSA架构简介Linux ALSA声卡驱动之二:声卡的创建Linux ALSA声卡驱动之三:PCM设备的创建Linux ALSA声卡驱动之四:Control设备的创建Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)Linux ALSA声卡驱动之六:ASoC架构中的MachineLinux ALSA声卡驱动之七:ASoC架构中的CodecLinux ALSA声卡驱动之八:ASoC架构中的PlatformALSA声卡驱
2021-10-27 10:52:55
912
原创 7.camera驱动08-全志-media framework
平台:全志A133 androidQ启动过程贯穿全篇的数据流向sensor0 ==> mipi0 ==> csi0 ==> isp0 ==> scale0(vipp0) ==> vinc0(dma0) ==> video0sensor1 ==> mipi1 ==> csi1 ==> isp0 ==> scale1(vipp1) ==> vinc1(dma1) ==> video1sensor、mipi、csi、isp、sc
2021-10-08 18:24:13
1838
4
原创 7.camera驱动07-写一个v4l2应用程序
直接贴代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <fcntl.h>#include <unistd.h>#include <errno.h>#include <malloc.h>#include <sys/stat.h>#include <sys/types.h>#include <
2021-10-06 13:09:50
285
原创 7.camera驱动06-自己实现v4l2驱动-虚拟摄像头
1. 框架分层实际上的v4l2框架:v4l2本质是还是一个字符设备驱动,有自己的fops。每注册一个video_device都会以次设备号为下标放到v4l2层的一个数组里。应用调用open函数时,v4l2会根据次设备号找到对应的video_device,进而调用video_device对应的fops。2. 注册v4l2_dev和video_device(1) 注册platform_device和platform_driver,也并不是一定要这样做,只是大家都这样做,那也就跟着做了(2) 注册
2021-10-04 22:11:19
3155
原创 7.camera驱动06-自己实现v4l2驱动-准备
平台:Ubuntu-16.04$uname -aLinux vbox-pc 4.15.0-112-generic #113~16.04.1-Ubuntu SMP Fri Jul 10 04:37:08 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux可以看到内核版本是4.15.0,去www.kernel.org找同版本的内核,如果没有请找最相近的内核代码下载完后,解压,把linux-4.15\drivers\media\platform\vivid复制到ubunt
2021-10-04 22:07:35
565
1
转载 7.camera驱动05-V4L2框架-control的数据结构
原文地址:https://yellowmax.blog.csdn.net/article/details/83242446本篇文章写一下 V4L2 里面的众多 control 的组织方式,也就是它的数据结构。主要就是新建的 control 是如何存放的,以及在需要用到的时候如何查找。里面用到了类似于「桶」的概念,没错就是「桶排序」里面的那个桶,这种比较特殊的小优化为查找速度提供了不少的帮助。话不多说,直接进入正题,本文章是基于 linux-4.4.138 内核来探讨的。几个结构体之间的关系st
2021-10-02 21:57:35
256
转载 7.camera驱动04-V4L2框架-control
原文地址:https://yellowmax.blog.csdn.net/article/details/81430870本文介绍在 v4l2 框架下面的 control 控制接口,这些接口通常用来实现一些特效控制、菜单控制等等。简介既然涉及到视频输入,就会有很多与 ISP 相关的效果,比如对比度、饱和度、色温、白平衡等等,这些都是通用的、必须的控制项,并且大多数仅需要设置一个整数值即可。V4L2 很贴心地为我们提供了这样一些接口以供使用(可以说是非常贴心的了),在内核里面,这些控制项被抽象为一个
2021-10-02 21:56:08
610
转载 7.camera驱动03-V4L2框架-videobuf2
原文地址:https://yellowmax.blog.csdn.net/article/details/81054611本文介绍在 v4l2 框架之下的数据流交互的实现与使用,主要目的是实现一个能够进行用户空间与内核空间进行数据交互、数据流格式设置、数据流 buffer 申请与释放、数据流开启与关闭的 video 设备驱动。简介videobuf2 用于连接 V4L2 驱动层与用户空间层,提供数据交流的通道,它可以分配并管理视频帧数据。videobuf 层实现了很多 ioctl 函数,包括 buf
2021-10-02 21:54:00
396
转载 7.camera驱动02-V4L2框架-media device
原文地址:https://yellowmax.blog.csdn.net/article/details/80889947本文对 V4L2 的运行时数据流设备管理做一个详细的介绍,包括什么叫「运行时设备管理」,它是干什么用的,怎么使用等等。本文的目标是掌握 media device 的编码使用方法以及功能运用。media framework简介相关的控制 API 在 Documentation/DocBook/media/v4l/media-controller.xml,本文档聚焦于内核测的
2021-10-02 21:50:34
470
转载 7.camera驱动01-V4L2框架-v4l2 device
原文地址:https://yellowmax.blog.csdn.net/article/details/80782068本文对 V4L2 中比较容易理解的骨干结构进行介绍,涉及两个核心结构体:v4l2_device, v4l2_subdev。文章围绕这两个结构体以 Linux-4.4 内核的 omap3isp 代码为例进行相关的介绍,所谓介绍还是起到辅助作用,真真儿的还是要靠 RTFSC、WTFSC。下面「该例程」均指的是 omap3isp 这个例程。V4L2 框架补充首先看图:V4L2
2021-10-02 21:46:57
476
转载 7.camera驱动00-V4L2框架概述
导读:V4L2 是专门为 linux 设备设计的一套视频框架,其主体框架在 linux 内核,可以理解为是整个 linux 系统上面的视频源捕获驱动框架。其广泛应用在嵌入式设备以及移动端、个人电脑设备上面,市面上的编码产品类如:SDV、手机、IPC、行车记录仪都会用到这个框架来进行视频采集,当然,有比较厉害的厂家直接就使用自己实现的一套视频采集框架,这种属于是厂家中战斗机了。下文主要参考linux-4.4内核文档对V4L2框架进行一次全局的介绍。V4L2框架简介几乎所有的设备都有多个 IC 模块,它们可
2021-10-02 21:33:24
1138
原创 6. lcd驱动2-浅析mipi
1. MIPI简介MIPI联盟是一个开放的会员制组织。2003年7月,由美国德州仪器(TI)、意法半导体(ST)、英国ARM和芬兰诺基亚(Nokia)4家公司共同成立。MIPI联盟旨在推进移动应用处理器接口的标准化 。MIPI联盟下面有不同的WorkGroup,分别定义了一系列的手机内部接口标准,比如摄像头接口CSI、显示接口DSI、射频接口DigRF、麦克风/喇叭接口SLIMbus等。MIPI包括:MIPI-DBI 显示总线接口:MIPI联盟发布的第一个显示标准,用来规定显示接口;MIPI-DP
2021-08-28 10:24:39
2887
原创 6. lcd驱动1-硬件原理
1. 液晶显示原理TFT-LCD(Thin Film Transistor Liquid Crystal Display)即薄膜晶体管液晶显示器,是微电子技术与液晶显示器技术巧妙结合的的一种技术。目前主流的LCD显示器都是TFT-LCD,是由原有液晶技术发展而来。TFT液晶为每个像素都设有一个半导体开关,以此做到完全的单独控制一个像素点,液晶材料被夹在TFT阵列和彩色滤光片之间,通过改变刺激液晶的电压值就可以控制最后出现的光线强度和色彩,如下图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下
2021-08-26 09:26:16
9737
原创 4. 例-内核高精度定时器
1.初始化定时器void hrtimer_init(struct hrtimer *timer, clockid_t which_clock, enum hrtimer_mode mode);参数说明timer:描述高精度定时器的结构体; struct hrtimer { struct timerqueue_node node; ktime_t _softexpires;
2021-08-18 16:24:03
153
原创 2. 例-中断(GPIO按键事件)
LCD驱动(1)硬件部分 Tiny4412开发板 型号:AT070TN92 分辨率:800*480 接口:RGB888 全志A33开发板 型号: 分辨率:1024*600 接口:RGB硬件连接接口 TTL(RGB) LVDS MIPI时序[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S3OwZCjY-1629086471921)(file:///C:\Users\aspire\AppData\Local\Tem
2021-08-16 23:05:48
948
原创 1. 例-字符设备驱动(开关灯)
字符设备驱动1.管理设备号dev_t dev = MKDEV(主设备号,次设备号) -->组合设备号主设备号 = MAJOR(dev_t dev) -->提取主设备号次设备号=MINOR(dev_t dev) -->提取次设备号2.分配设备号#include <linux/fs.h>int register_chrdev_region(dev_t from, unsigned count, const
2021-08-15 16:31:31
341
转载 error: device not found
https://blog.csdn.net/weixin_42953268/article/details/87183535
2019-08-25 16:01:44
3739
原创 ubuntu建自己的repo服务器
git服务器搭建说明服务器端,下文简称:A端;客户端,下文简称:B端;(注意:A端和B端,都是同一电脑,因为懒得新建两个虚拟机,如果想区分两台电脑,把以下步骤的A端IP地址(localhost)改成对应的IP,就可以了)安装必要软件(A端)sudo apt-get install git-core openssh-server openssh-client安装配置gito...
2019-07-28 12:00:35
823
Teledyne LeCroy Wireless
2024-05-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人