- 博客(38)
- 资源 (18)
- 收藏
- 关注
原创 蓝牙 BCSP 解析 源码分析
此系列打算做一个HCI解析工具,从最底层的BCSP开始作者:zhongjun本着互相学习的目的,来分享此一系列的文章,欢迎转载,请注明作者,尊重版权,谢谢文章有不当处请指正,共同学习博客地址:http://blog.csdn.net/xiaoxiaopengbo一.Introduction BCSP( BlueCore Serial Protoco)是CSR的一个协
2016-06-27 22:40:42 3960 8
转载 纸上谈兵: 树, 二叉树, 二叉搜索树
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 树的特征和定义树(Tree)是元素的集合。我们先以比较直观的方式介绍树。下面的数据结构是一个树:树有多个节点(node),用以储存元素。某些节点之间存在一定的关系,用连线表示,连线称为边(edge)。边的上端节点称为父节点,下端称为子节点。树
2016-06-18 16:15:31 908
转载 算法之二叉树各种遍历
树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用。二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2的 i -1次方个结点;
2016-06-18 16:12:30 841
转载 链表
转载自:http://blog.csdn.net/xubin341719/article/details/7091583/最近不是太忙,整理些东西,工作也许用得到。1,为什么要用到链表数组作为存放同类数据的集合,给我们在程序设计时带来很多的方便,增加了灵活性。但数组也同样存在一些弊病。如数组的大小在定义时要事先规定,不能在程序中进行调整,这样一来,在程序设计中针对不同问题有
2016-06-18 15:47:24 1140
转载 栈 和 队列
转载自:http://blog.csdn.net/hguisu/article/details/76741951.栈1.1 栈的定义栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行。如下所示:结论:后进先出(Last In First Out),简称为LIFO线性表。栈的基本运算有六种:
2016-06-18 15:15:40 962
转载 八大排序算法
转载自:http://blog.csdn.net/hguisu/article/details/7776068概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog
2016-06-18 15:04:07 860
转载 散列表(hash table)
目录 引言直接寻址散列寻址散列函数除法散列乘法散列全域散列完全散列碰撞处理方法链表法开放寻址法线性探查二次探查双重散列随机散列再散列问题完整源码(C++)参考资料内容 1、引
2016-06-17 15:35:58 1396
转载 散列表 基本概念
散列表散列表 又叫 哈希表 (hash table)。通过访问key而直接访问存储的value值。它的key - value之间存在一个映射函数,我们可以通过key值和“看不到”的映射函数(散列函数)访问对应的value值。这加快了查找的速度!存放记录的数组称做散列表。散列方法不同于顺序查找、二分查找、二叉排序树及B-树上的查找。它不以关键字的比较为基本操作,采用直接寻址技术
2016-06-17 09:27:50 5013
原创 蓝牙 AVRCP 剖析
一.概述The Audio/Video Remote Control Profile (AVRCP) defines the features and procedures required in order to ensure interoperability between Bluetooth devices with audio/video control functions
2016-06-16 14:32:28 8288 7
转载 蓝牙 AVCTP 剖析
1.概述 AVCTP协议描述了蓝牙设备间Audio/Video的控制信号交换的格式和机制,它是一个总体的协议,具体的控制信息由其指定的协议(如AVRCP)实现,AVCTP本身只指定控制command和response的总体的格式。 几个重要的点:(1)AVCTP uses point-to-point signaling over connection-orie
2016-06-16 10:17:37 4889 1
原创 蓝牙 AVDTP 剖析(二) --- command格式 和 流程
一.PDU解析1.Signal command and response headersPDU ID1).AVDTP_DISCOVER2).AVDTP_GET_CAPABILITIES3).AVDTP_SET_CONFIGURATION4).AVDTP_OPEN5).AVDTP_ST
2016-06-15 15:38:08 3122
转载 蓝牙 AVDTP 剖析(一) --- 概述
1.概述 AVDTP(AUDIO/VIDEO DISTRIBUTION TRANSPORT PROTOCOL)是用来描述音频/视频在蓝牙设备间的传输的协议,是A2DP协议的基础协议,其在协议栈中的位置如下:AVDTP协议建立在connection-oriented L2CAP channel上,只能支持point-to-point signaling。
2016-06-15 14:56:05 9245
转载 蓝牙音乐音质损耗
你真的知道吗? 蓝牙设备为何音质差最近这段时间Wi-Fi音箱可谓是非常热门的一个话题,也许平时不怎么关注音箱耳机的一些网友都有所耳闻了,就现在的情况而言,很多Wi-Fi音箱在宣传时都会和蓝牙产品进行音质上的对比,称音质会比蓝牙的好上不少,能做到无损传输,而事实上也确实如此。蓝牙音频产品的音质已经被人吐槽了很长一段时间了,几乎所有人都已经知道蓝牙产品音质不如其他,随着
2016-06-14 14:15:26 18344
转载 蓝牙音乐 A2DP 剖析
1.概述 A2DP(Advanced Audio Distribution Profile)是蓝牙的音频传输协议,典型应用为蓝牙耳机。A2DP协议的音频数据在ACL Link上传输,这与SCO上传输的语音数据要区别。A2DP不包括远程控制的功能,远程控制的功能参考协议AVRCP。AVDTP则定义了蓝牙设备之间数据流句柄的参数协商,建立和传输过程以及相互交换的信令实体形式,该协议是
2016-06-14 13:35:46 6281 2
原创 蓝牙 HID class descriptor 分析
一.MOUSE0x05,0x01, /*USAGE_PAGE (Generic Desktop)*/0x09,0x02, /*USAGE (Mouse)*/0xa1,0x01, /*COLLECTION (Application)*/0x09,0x01, /*USAGE (Pointer)*/0xa1,0x00, /*COLLECTION (Physical
2016-06-13 17:09:24 3929 1
转载 蓝牙 HID 剖析(一)
1.概述 The Human Interface Device (HID)定义了蓝牙在人机接口设备中的协议、特征和使用规程。典型的应用包括蓝牙鼠标、蓝牙键盘、蓝牙游戏手柄等。该协议改编自USB HID Protocol。 2.一些概念(1)HID Reports:Bluetooth HID devices支持三种Report:Input, Output, and Fea
2016-06-13 15:58:00 14559 6
原创 蓝牙电话 HFP 剖析(三) --- flow解析
一.SLC建立过程deatil air packet、二.主动打电话此文章的目的:帮助初入蓝牙的人理解HFP 是通过AT command交互在这里不能一一列出具体的功能flow,如从事蓝牙,遇到HFP问题,可以私信我
2016-06-08 07:52:17 3812 2
原创 蓝牙 电话 HFP 剖析(一) --- 概述
一.概述 HFP(Hands-free Profile),可以让蓝牙设备可以控制电话,如接听、挂断、拒接、语音拨号等,拒接、语音拨号要视蓝牙耳机及电话是否支持。 结构图: 定义了两种角色(role):Audio Gateway (AG) – This is the device that is the gateway of the audio, b
2016-06-08 07:41:02 8392 1
转载 C语言 -- 返回局部变量
一般的来说,函数是可以返回局部变量的。 局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向的内容就是不可预料的内容,调用就会出错。准确的来说,函数不能通过返回指向栈内存的指针(注意
2016-06-06 13:36:12 960
原创 编程规范 --- 宏
1:用宏定义表达式时,要使用完备的括号。示例:如下定义的宏都存在一定的风险。#defineRECTANGLE_AREA( a, b ) a * b#defineRECTANGLE_AREA( a, b ) (a * b)#defineRECTANGLE_AREA( a, b ) (a) * (b)正确的定义应为:#defineRECTANGLE_AREA( a, b ) (
2016-06-04 15:12:42 1962 2
原创 编程规范 --- 代码测试、维护
1:单元测试要求至少达到语句覆盖。2:单元测试开始要跟踪每一条语句,并观察数据流及变量的变化。3:清理、整理或优化后的代码要经过审查及测试。4:代码版本升级要经过严格测试。5:使用工具软件对代码版本进行维护。6:正式版本上软件的任何修改都应有详细的文档记录。7:发现错误立即修改,并且要记录下来。8:关键的代码在汇编级跟踪。9:仔细设计并分析测试用例,使测试用例覆盖尽
2016-06-04 15:10:17 1616
原创 编程规范 --- 代码编辑、编译、审查
1:打开编译器的所有告警开关对程序进行编译。2:在产品软件(项目组)中,要统一编译开关选项。3:通过代码走读及审查方式对代码进行检查。说明:代码走读主要是对程序的编程风格如注释、命名等以及编程时易出错的内容进行检查,可由开发人员自己或开发人员交叉的方式进行;代码审查主要是对程序实现的功能及程序的稳定性、安全性、可靠性等进行检查及评审,可通过自审、交叉审核或指定部门抽查等方式进行。4
2016-06-04 15:06:46 1658
原创 编程规范 --- 质量保证
1:在软件设计过程中构筑软件质量。2:代码质量保证优先原则 (1)正确性,指程序要实现设计要求的功能。 (2)稳定性、安全性,指程序稳定、可靠、安全。 (3)可测试性,指程序要具有良好的可测试性。 (4)规范/可读性,指程序书写风格、命名规则等要符合规范。 (5)全局效率,指软件系统的整体效率。 (6)局部效率,指某个模块
2016-06-04 15:01:17 2800
原创 编程规范 --- 程序效率
1:编程时要经常注意代码的效率。说明:代码效率分为全局效率、局部效率、时间效率及空间效率。全局效率是站在整个系统的角度上的系统效率;局部效率是站在模块或函数角度上的效率;时间效率是程序处理输入任务所需的时间长短;空间效率是程序所需内存空间,如机器代码空间大小、数据空间大小、栈空间大小等。2:在保证软件系统的正确性、稳定性、可读性及可测性的前提下,提高代码效率。说明:不能一味地追求代码效
2016-06-04 14:53:13 2276
原创 编程规范 --- 可测性
1.项目组或产品组内,要有一套统一的为集成测试与系统联调准备的调测开关及相应打印函数,并且要有详细的说明。说明:本规则是针对项目组或产品组的。2:在同一项目组或产品组内,调测打印出的信息串的格式要有统一的形式。信息串中至少要有所在模块名(或源文件名)及行号。说明:统一的调测信息格式便于集成测试。3:编程的同时要为单元测试选择恰当的测试点,并仔细构造测试代码、测试用例,同时给
2016-06-04 14:46:15 2176
原创 编程规范 --- 函数 过程
1:对所调用函数的错误返回码要仔细、全面地处理。2:明确函数功能,精确(而不是近似)地实现函数设计。3:编写可重入函数时,应注意局部变量的使用(如编写C/C++语言的可重入函数时,应使用auto即缺省态局部变量或寄存器变量)。说明:编写C/C++语言的可重入函数时,不应使用static局部变量,否则必须经过特殊处理,才能使函数具有可重入性。4:编写可重入函数时,若使用全局变量,
2016-06-04 14:37:56 4004
原创 编程规范 --- 变量 结构
1:去掉没必要的公共变量。说明:公共变量是增大模块间耦合的原因之一,故应减少没必要的公共变量以降低模块间的耦合度。2:仔细定义并明确公共变量的含义、作用、取值范围及公共变量间的关系。说明:在对变量声明的同时,应对其含义、作用及取值范围进行注释说明,同时若有必要还应说明与其它变量的关系。3:明确公共变量与操作此公共变量的函数或过程的关系,如访问、修改及创建等。说明:明确过
2016-06-04 14:20:14 1490
原创 编程规范 --- 可读性
1:注意运算符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级。说明:防止阅读程序时产生误解,防止因默认的优先级与设计思想不符而导致程序出错。示例:下列语句中的表达式word = (high if ((a | b)&& (a & c)) (2)if ((a | b) 如果书写为high a | b && a& ca | b 由于hig
2016-06-04 14:05:28 1202
原创 编程规范 --- 标识符命名
1:标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。说明:较短的单词可通过去掉“元音”形成缩写;较长的单词可取单词的头几个字母形成缩写;一些单词有大家公认的缩写。示例:如下单词的缩写能够被大家基本认可。temp 可缩写为 tmp ;flag 可缩写为 flg ;statistic 可缩写为 stat;incremen
2016-06-04 14:01:02 2211
原创 编程规范 --- 注释
1:一般情况下,源程序有效注释量必须在20%以上。说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。2:说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简
2016-06-04 11:51:05 5528
原创 编程规范 --- 排版
1-1:程序块要采用缩进风格编写,缩进的空格数为4个。说明:对于由开发工具自动生成的代码可以有不一致。1-2:相对独立的程序块之间、变量说明之后必须加空行。示例:如下例子不符合规范。if (!valid_ni(ni)){ ... // program code}repssn_ind = ssn_data[index].repssn_index;repssn_
2016-06-04 11:35:47 2885
原创 算法导论(1) 笔记
算法概念: 所谓算法,就是定义良好的计算过程,它取一个或者一组值作为输入,并产生一个或者一组值作为输出。 亦即:算法就是一系列的计算步骤,用来将输入数据转换成输出结果。选择最佳排序算法考虑因素: 待排序的数据项,已排序的程度,对数据取值的i可能限制,采用的存储设备的类型。算法大分类: 正确算法:一个算法
2016-06-04 11:16:39 1012
转载 算法的时间复杂度和空间复杂度-总结
算法的时间复杂度和空间复杂度-总结 通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。因此,作为程序员,掌握基本的
2016-06-04 11:04:53 39236 4
原创 蓝牙 WBS 宽带通话 (wide band speech) 剖析(二) -- BCCMD control chip
一.概述此文章接上篇文章:http://blog.csdn.net/xiaoxiaopengbo/article/details/51565016此文介绍蓝牙通话WBS功能,通过BCCMD command方式来告知芯片DSP对通话data进行msbc编解码如有不懂BCCMD看此文档:http://blog.csdn.net/xiaoxiaopengbo/article/details/
2016-06-03 16:54:12 6338 7
原创 蓝牙 宽带通话 (wide band speech)WBS 剖析(一) -- profile层
一.概述WBS(wide band speech)通俗来讲就是蓝牙宽带通话,通话数据frequency 16K,采用msbc编解码(chip中实现)和NBS(narrow band speech)相对,NBS通俗来讲是窄带通话,通话数据frequency 8K,采用CSVD编解码(chip中实现)NBS是默认二.实现要实现WBS,总体来说比较复杂要分两个阶段进行:1
2016-06-02 11:21:26 14107 2
原创 2016下半年计划
匆匆上半年过去了制定下半年计划,督促自己近期先会做几件事情:1.整理编程规范2.整理CSR WBS DSP manger flow3.编写一个Parse 蓝牙data的软件除了平时把工作做出色外1.学习算法导论-》把数据结构和算法弄的扎实点2.刷下leetcode-》巩固数据结构和算法3.深入学习linux and μC/OS II4.学习《
2016-06-01 21:19:06 1002
原创 蓝牙 BCCMD 剖析
一.概述BCCMD协议(BlueCoreCommand protocol)是CSR公司为主机访问其蓝牙芯片上命令解释器提供的借口协议命令解释器执行监控蓝牙芯片的命令二.原理三.数据模型四.消息1.结构:2.处理流程:
2016-06-01 17:46:34 5484 1
stm32f1_mrvl88w8801应用笔记_20191220.pdf
2019-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人