自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (2)
  • 收藏
  • 关注

原创 蓝牙HFP

这其实还是和蓝牙电话应用密切相关的,蓝牙电话收到音频链路创建成功的广播后通过AudioManager.requestAudioFocus()申请到系统的音频焦点后,audio模块会根据申请焦点的stream type判断其级别,高级别的音源可以打断低级别的音源(比如:听音乐时打电话,会先暂停掉音乐)。编码方式有:SBC、AAC、APTX、APTX_HD、LDAC这五种编码方式,最基础的编码方式是SBC,支持蓝牙多媒体播放的设备必须支持该编码方式,编码质量最好的是LDAC。编码方式有:CVSD、mSBC。

2024-06-12 19:29:20 421

原创 linux 下ALSA介绍

1、ALSA概述ALSA表示高级Linux声音体系结构(Advanced Linux Sound Architecture)。它由一系列内核驱动,应用程序编译接口(API)以及支持Linux下声音的实用程序组成。ALSA项目发起的原由是Linux下的声卡驱动(OSS/Free drivers)没有获得积极的维护。而且落后于新的声卡技术。Jaroslav Kysela早先写了一个声卡驱动,并由此开始了ALSA项目,随后,更多的开发者加入到开发队伍中,更多的声卡获得支持,API的结构也获得了重组。

2024-06-12 19:08:04 1010

原创 HWA和BSS区别

基带信号处理是雷达系统中从接收天线获取的射频信号转换为可用信息的关键步骤。芯片中的HWA(Hardware Accelerator)模块功能主要是为了加速雷达信号处理的特定任务。BSS模块通过高效的基带信号处理,确保雷达系统能够从接收到的射频信号中提取出有用的信息,进行目标检测、速度估计和位置跟踪,从而实现雷达系统的主要功能。HWA模块通过硬件加速这些计算密集型任务,可以大幅提高雷达系统的性能和效率,降低功耗,同时提高实时性和检测精度。

2024-06-11 17:09:41 392

原创 C语言0长度数组(可变数组/柔性数组)

Linux内核编程时常用的likely()和unlikely()底层调用的likely_notrace()、unlikely_notrace()就是基于 __builtin_expect(EXP,C)实现的。内建函数__builtin_return_address(LEVEL)返回当前函数或其调用者的返回地址,参数LEVEL指定调用栈的级数,如0表示当前函数的返回地址,1表示当前函数的调用者的返回地址。GNU C把包含在括号中的复合语句看成是一个表达式,称为语句表达式,它可以出现在任何允许表达式的地 方。

2024-06-05 22:11:04 685

原创 AVDTP协议解析

一、概述1、框架AVDTP( A/V Distribution Transport Protocol)定义了A/V stream协商、建链和传输过程,也规定了两个设备传输数据的格式;AVDTP能如下:a、发现设备支持的功能;b、提供建立连接和release链接机制;c、提供具有实时性的数据包和机制,包括最小传输延时机制、包含时钟的数据包机制、Qos包和传输状态机制、带宽优化机制;d、提供修复机制;

2024-06-04 19:49:14 456

原创 蓝牙AVRCP协议解析

还有其他一些功能,如continuation commands,Group navigation,Absolute Volume,Media Player Selection,Now Playing等,这里就不详细看了,我们开发时遇到随时查下spec就可以,了解就好;CT想TG提供NOTIFY指令集,TG需要向已经注册的NOTIFY指令集给CT发送INTERIM响应;看到这里没有糊涂吧,想下前一篇介绍的AVCTP帧格式,AVCTP只定义了头,具体信息部分是由具体协议决定,上面就是AVRCP的协议格式;

2024-06-01 16:26:25 2420

原创 bt的sniff mode

由于POLL packet只能在master-to-slave slot发送,所以N-sniff attempt最大值为(T-sniff / 2)。N-sniff timeout —— 如果Slave在一次POLL packet - NULL packet exchange之后立刻就进入低功耗状态,那么Slave就会错过Master紧接着发送的ACL data,Slave将只能在下一个Anchor Point的时刻才有机会接收Master发送的ACL data了。这就导致了Slave不能及时响应。

2024-06-01 12:10:40 338

原创 指针用法详解

对于普通的指针而言,解引只需要根据类型来取出数据即可,但函数指针是要调用一个函数,其解引不可能是将数据取出,实际上函数指针的解引本质上是执行函数的过程,只是这个执行函数是使用的call指令并不是之前的函数,而是函数指针的值,即函数的地址。,这个操作符对于指针有两个不同的意义,当在申明的时候是申明一个指针,而当在使用p指针时是解引操作,解引操作右边是一个地址,这样解引操作的意思就是该地址内存中的数据。函数指针在Linux内核中用的非常多,而且在设计操作系统的时候也会用到,因此这里将详细讲解函数指针。

2024-05-31 15:08:43 838

原创 ble connection过程

每个 CE 的第一个交互点,我们称之为锚点(anchor point),寻找锚点,是个细致的活路,因为空口交互,均是以 us 为单位,马虎不得。那么怎么样才算是认为断连呢?这个好理解吧,比如这个时间为 5s,那么如果 Slave 断电了,但是 Master 并不知道,还在傻傻的按照每个 Interval 在发送包,但是此刻,Master 就不会接收到来自 Slave 的回应,Master 便怀恨在心,一直计数,直到 TO 到了,Master 便死心了,认为 Slave 已经 Offline,上报连接断开。

2024-05-31 14:43:22 835

原创 BLE空中升级OTA流程

所谓DFU(Device Firmware Update),就是设备固件升级的意思,而OTA(Over The Air)是实现DFU的一种方式而已,准确说,OTA的全称应该是OTA DFU,即通过空中无线方式实现设备固件升级。只不过大家为了方便起见,直接用OTA来指代固件空中升级(有时候大家也将OTA称为FOTA,即Firmware OTA,这种称呼意思更明了一些)。只要是通过无线通信方式实现DFU的,都可以叫OTA,比如2G/3G/4G/WiFi/蓝牙/NFC/Zigbee,他们都支持OTA。

2024-05-31 14:35:57 1308

原创 蓝牙传输速度多快

原文:http://www.informit.com/articles/article.aspx?p=21325译者按:本文主要翻译给需要在L2CAP和RFCOMM上开发应用的同学,了解怎样评估蓝牙速率是否满足需求以及曾样进行优化。原文发表2001,不涉及Bluetooth 3.0+HS。本质上HS的数据传输过程已经和蓝牙无关了,而是通过802.11进行传输,蓝牙只是完成了握手。也许你已经听说过了蓝牙的数据速率范围可以从每秒1兆字节到每秒几千比特。为什么会有如此大的差距呢?

2024-05-29 11:53:37 863

原创 TinyMaix的关键特性

1. 核心代码少于400行(tm_layers.c + tm_model.c + arch_cpu.h),代码段(.text)少于3KB。1. 核心代码少于400行(tm_layers.c + tm_model.c + arch_cpu.h),代码段(.text)少于3KB。3. 支持INT8/FP32/FP16模型,实验性支持FP8模型,支持Keras H5或TFLite模型转换。3. 支持INT8/FP32/FP16模型,实验性支持FP8模型,支持Keras H5或TFLite模型转换。

2024-05-29 11:35:10 177

原创 安全启动设计

安全启动的工作原理是通过验证计算机的启动代码的数字签名来确保其完整性和真实性。在安全启动过程中,计算机的固件会验证这些启动代码的数字签名,以确保它们是由可信的实体签名的。安全启动是包含在统一可扩展固件接口(UEFI)规范中的一项功能,可以在支持UEFI的计算机上使用。总的来说,安全启动是一种通过验证启动代码的数字签名来确保计算机启动过程的安全性的技术。安全启动(Secure Boot)是一种计算机启动过程中的安全机制,旨在防止恶意软件或未经授权的操作系统加载到计算机中。

2024-05-29 11:31:30 249

原创 蓝牙最新5.4框架

蓝牙最新5.4框架classic and le

2024-01-12 10:26:44 396 1

原创 GATT协议

通常,一个BLE设备充当GATT服务器,而另一个BLE设备(例如智能手机或电脑)充当GATT客户端。GATT服务器将服务和特征公开为其提供的数据,而GATT客户端可以发起连接、发现服务和特征、读取和写入数据,并订阅通知。GATT协议用于构建基于BLE的数据交换应用,例如智能手表、健康和健身设备、传感器、追踪器和其他连接的设备。:GATT服务器是BLE设备上的数据库,它包含一组称为"特征"的数据块,这些特征可以被客户端访问。客户端可以请求连接到服务器、发现服务和特征、读取和写入特征的值,以及订阅特征的通知。

2023-11-07 20:06:21 585

原创 PCM接口介绍

音频PCM(脉冲编码调制)接口是一种用于数字音频传输的常见接口标准。它通过对模拟音频信号进行采样、量化和编码,将其转换为数字音频数据流,然后通过一种接口传输这些数据。PCM接口将模拟音频信号按照一定的时间间隔采样,将每个采样值量化成数字形式。采样频率和位深度是两个关键参数,它们决定了音频的质量和数据量。采样和量化后,PCM数据通过编码转换为二进制形式。通常,音频PCM数据以线性PCM格式编码,其中每个采样值以二进制数值表示。数字音频数据通过音频PCM接口传输。

2023-11-07 10:19:04 2018 1

原创 secure boot 签名和验签流程

secure boot 签名和验签流程

2023-11-03 16:19:05 347

原创 汽车HSM相关secure boot 设计

主要介绍HSM 相关secure boot 流程

2023-10-19 10:52:40 677 1

原创 Media Controller Profile(LE AUDIO 控制协议)

LE audio profile

2023-09-13 14:12:59 318

原创 android 系统蓝牙启动

1蓝牙设计框架:2启动流程

2023-08-24 13:42:48 144 1

原创 蓝牙a2dp 建立过程分析

2:stream open ->start media data下发处理。1:a2dp 先建立信令通道。

2023-06-29 21:25:41 172 1

原创 kernel配置

]Enable AIO support,支持AIO(Asynchronous I/O 异步事件非阻塞I/O),(包含aio.h, aio_read,向内核发出读命令,aio_write向内核写命令,详细见‘AIO介绍‘文档),AIO机制为服务器端高并发应用程序提供了一种性能优化的手段。Enable access to .config through /proc/config.gz,上一项的子项,可以通过/proc/ config.gz访问.config配置,上一个选的话,建议选上。

2023-06-28 21:15:20 442 1

原创 蓝牙测试功能

蓝牙测试

2023-02-17 10:20:20 223

原创 蓝牙唤醒方案

蓝牙唤醒

2023-01-18 20:15:44 721

原创 蓝牙sniff mode

蓝牙sniff mode

2023-01-18 20:11:23 351

原创 蓝牙host avrcp研究

avrcp协议

2023-01-18 20:05:28 111

转载 Bluetooth应用层框架介绍

Bluetooth应用层框架介绍

2023-01-09 10:16:22 1537

转载 经典蓝牙(BR/EDR)设备连接过程分析

经典蓝牙(BR/EDR)设备连接过程分析 yk150915 2019-01-15 22:07:50 ...

2021-09-02 15:53:53 1609

riscv-spec-v2.1.pdf

有感于计算机体系结构和指令集架构已经过数十年的发展非常成熟,但是像伯克利这样的研究机构竟然“无米下锅”(选择不出合适的指令集架构供其使用),伯克利的教授与研发人员决定发明一种全新的、简单且开放免费的指令集架构,于是RISC-­V架构诞生了。本文主要介绍risc-v架构,方便大家很好的学习和入门

2020-07-09

usb_20.pdf

usb 2.0协议,解决usb协议标准以及各种传输模式,同步中断,控制,同步,可以用于开发usb 存储 和 audio设备

2020-05-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除