自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (5)
  • 收藏
  • 关注

原创 Linux ALSA驱动基本框架

【代码】Linux ALSA驱动基本框架。

2024-09-09 19:08:24 437

原创 【BLE】五.HID协议详解

ESP32的参考示例工程

2024-09-01 23:54:51 537

原创 【BLE】四.SMP安全配对详解

Paring(配对):配对能力交换,设备认证,密钥生成,连接加密以及机密信息分发等过程Bonding(绑定)配对中会生成一个长期密钥(LTK,long-term Key),双方把在Flash,那么这两个设备再次重连就可,且直接使用LTK对蓝牙连接进行加密;不存储LTK(不分发LTK),paring完成后连接也是加密的,但重连需再次进行paring流程,否则两者还是明文通信;

2024-09-01 15:37:46 1103

原创 【BLE】三.GATT/ATT规范

SPP(蓝牙透传)的示例初始化:SPP示例运行过程:GATTS&GAP回调:黄色:事件回调 绿色:事件 蓝色:执行GATTC&GAP回调:代码定义:特征组成结构:

2024-09-01 15:31:34 220

原创 【BLE】二.Beacon信标广播

EddyStone数据包格式:

2024-08-30 21:41:23 178

原创 【BLE】一.协议栈结构

注:LC链路控制功能类似,L2CAP的作用对象为HCI主机控制接口,LC链路控制的作用对象为物流通道/逻辑通道在空中传输的数据。

2024-08-27 23:29:24 330

原创 以太网PHY驱动调试笔记(KSZ8081)

PHY驱动调试笔记准备知识以太网类型100BASE-TX新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入准备知识以太网类型IEEE 802.3 定义了CSMA/CD总线介质访问控制子层和物理层规范;IEEE 80

2024-08-27 23:06:16 387

原创 RTSP协议的交互

协议格式RTSP中所有的操作都是通过服务器和客户端的消息应答机制完成的,其中消息包括请求和应答两种,RTSP是对称的协议,客户机和服务器都可以发送和回应请求。RTSP是一个基于文本的协议,它使用UTF-8编码(RFC2279)和ISO10646字符序列,采用RFC882定义的通用消息格式,每个语句行由CRLF结束。...

2021-08-25 23:32:48 827

原创 rk3399pro平台,编译buildroot时发生格式错误[-Werror=format]

问题使用firefly固件编译buildroot时,配置rkmedia时发现出现格式错误问题思路直接改动本地的rkmedia源码改动rkmedia中CmakeList.txt中的gcc配置(ON ==》OFF)根据rkmedia中CmakeList.txt反推“-DWARNINGS_AS_ERRORS=ON”的源设置文件解决方案选择更科学的思路3作为解决方案,在SDK目录进行文本检索:grep WARNINGS_AS_ERRORS -r .打开配置文件vi

2021-08-18 15:15:42 941

原创 QT:控件在垂直布局中居中

2021-01-27 10:03:52 8273

原创 Excel:转成16进制补0并在结果前填上0x

运算公式="0x"&TEXT(DEC2HEX(B2),"00")效果

2020-10-21 10:15:28 7057 2

原创 RTOS移植cJSON

简介cJSON需要调用内存管理函数,由于RTOS有其独立的内存管理函数,需对接接口。对接内存管理函数这里以FreeRTOS为例,在GitHub上找最新的cJSON(新版cJSON优化了解析速度等)。注释掉原先的,替换为FreeRTOS的://#define internal_malloc malloc//#define internal_free free//#define internal_realloc realloc#include "cmsis_os.h"#define intern

2020-09-14 17:32:55 774

原创 RT-Thread添加控制台与 FinSH

添加 UART 控制台1. 实现串口初始化2. 使能使能 RT_USING_CONSOLE 宏3. 实现 rt_hw_console_outputvoid rt_hw_console_output(const char *str){ char a = '\r'; rt_size_t i = 0; rt_size_t size = rt_strlen(str); __HAL_UNLOCK(pUartHandler); for (i = 0; i < size; i++)

2020-09-07 00:02:11 1336

原创 clion 部分函数无法跳转到函数实现处

clion 部分函数无法跳转到函数实现处原因由于GBK与GB2312编码格式稍有不一样,如果项目默认编码为GBK,而文件编码格式为GB2312,则有可能会出现无法跳转到实现处的错误。解决方式设置项目默认编码与文件编码格式一致:GB2312、GBK的区别收录不同:GB2312标准共收录6763个汉bai字,其中一级du汉字3755个,二级汉字3008个;GBK共收入21886个汉字和图形符号。表示不同:GB2312对任意一个图形字符都采用两个字节表示,并对所收汉字进行了“分区”处理

2020-09-01 17:04:52 6443

原创 fopen函数与open函数的优缺点

概念:使用fopen函数,由于在用户态下就有了缓冲,因此进行文件读写操作的时候就减少了用户态和内核态的切换(切换到内核态调用还是需要调用系统调用API:read,write);使用open函数,在文件读写时则每次都需要进行内核态和用户态的切换;优缺点:如果顺序访问文件,fopen系列的函数要比直接调用open系列的函数快;如果随机访问文件则相反。...

2020-01-09 18:31:20 944

原创 海思视频码率参数解析

码率参数:inputTypeoutputTypeu32Gop: I 帧间隔( 即I帧比例为1:(u32Gop-1) )。最好设置为编码帧率的整数倍,如果不是整数倍, I 帧的分布在时间上会不均匀,导致瞬时码率波动;中高码率下 Gop 可以等于编码帧率;低码率下 Gop需要适当加大。取值范围:[1, 65536]u32BitRate:平均 bitrate,以 kbps 为单...

2019-12-11 22:49:02 4991 1

原创 设计模式笔记20:组合模式

Composite动机客户代码过多地依赖于对象容器复杂的内部实现结构,对象容器内部实现结构(而非抽象结构)的变化 引起客户代码的频繁变化,带来了代码的维护性、扩展性等弊端。如何将”客户代码与复杂的对象容器结构“解耦?让对象容器自己来实现自身的复杂结构,从而使得客户代码就像处理简单对象一样来处理复杂的对象容器?模式定义将对象组合成树形结构以表示”部分-整体“的层次结构。Compos...

2019-12-06 16:35:15 109

原创 设计模式笔记15:代理模式

Proxy动机在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等), 直接访问会给使用者、或者系统结构带来很多麻烦。如何在不失去透明操作对象的同事来管理/控制这些对象特有的复杂性?增加一层间接层是软件开发中常见的解决方式。模式定义为其他对象提供一种代理以控制(隔离,使用接口)对这对象的访问。 ——《设计模式》GoF(...

2019-12-06 14:06:53 101

原创 设计模式笔记14:门面模式

Façade“接口隔离”模式在主件构建过程中,某些接口之间的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案。典型模式:FaçadeProxyAdapterMediator动机客户和组件中各种复杂的子系统有过多的耦合(如下图所示)如何简化外部客户程序和系统间的交互接口?如何解耦?模式定义...

2019-12-04 23:01:00 128

原创 设计模式笔记13:享元模式

Flyweight动机采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中,从而带来很高的运行时代价——主要指内存需求方面的代价。如何在避免大量细粒度对象问题的同时,让外部客户程序仍然能够透明地使用面向对象的方式来进行操作?模式定义运行共享技术有效地支持大量细粒度的对象。 ——《设计模式》GoF要点总结面向对象很好地解决了抽象性的问题,但是作为yield运行机器中...

2019-12-04 22:27:11 114

原创 设计模式笔记12:单例模式

Singleton"对象性能"模式面向对象很好地解决了“抽象”的问题,但是必不可免地要付出一定的代价,对于通常情况来讲,面向对象的成本大都可以忽略不计。但是某些情况,面向对象所带来的成本必须谨慎处理。典型模式:SIngletonFlyweight动机经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率。如何绕过常规的构造器,...

2019-12-04 20:21:07 112

原创 设计模式笔记11:构建器

Builder动机有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这 个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着需求改变而改变?模式定义将一个复杂对象的构建与其表示相分离,使得...

2019-12-04 18:20:18 145

原创 设计模式笔记10:原型模式

Prototype动机经常面临这“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的接口。如何应对这种变化?如何向“客户程序(使用这些对象的程序)”隔离出“这些易变对象”,从而使得依赖这些”易变对象“的客户程序不随着需求改变而改变。模式定义使用原型实例指定创建对象的种类,然后通过拷贝(深拷贝)这些原型来创建新的对象。 ——《...

2019-12-04 17:25:43 95

原创 设计模式笔记9:抽象工厂

Abstract Factory动机经常面临着“一系列相互依赖的对象工作”;同时,由于需求的变化,往往存在更多系列对象的创建工作。如何应对这种变化?如何绕过常规的对象创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合。模式定义提供一个接口,让该接口负责创建一系列”相关或者相互依赖的对象“,无需指定它们具体的类。 ——《设计模式》GoF...

2019-12-04 16:53:25 111

原创 设计模式笔记8:工厂模式

Factory Method“对象创建”模式通过“对象创建”模式绕开new,来避免对象创建(new)过程中导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是接口抽象之后的第一步工作。典型模式:Factory MethodAbstract FactoryPrototypeBuilder动机在软件系统中,经常面临着创建对象的工作;由于需求的变化,需要创建的对象的具体类...

2019-12-03 22:51:13 124

原创 设计模式笔记7:桥模式

动机

2019-12-03 18:15:13 185

原创 设计模式笔记6:装饰模式

Decorator“单一职责”模式:如果责任划分不清晰, 使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划分责任典型模式:DecoratorBridge动机在某些情况下我们可能会“过度地使用继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性; 并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功...

2019-12-03 18:11:56 169

原创 设计模式笔记5:观察者模式

Observer“组件协助”模式:通过晚绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常有的模式(包括前面所学的两个,Template Method、Strategy、Observer)动机在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——“ 一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不...

2019-12-03 00:06:38 90

原创 设计模式笔记4:策略模式

Strategy动机(Motivation)在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。如何在运行时(Runtime)根据需要透明地更改对象的算法?将算法与对象本身解耦,从而避免上述问题?模式定义定义一系列算法,把它们一个个封装起来,并且使它们可互相替换(变化)。该模...

2019-12-02 17:15:29 153

原创 设计模式笔记3:模板方法

Template Method动机(Motivation):在软件构建过程中,对于某一项任务,它常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求。如何在确定稳定操作结构的前提下,来灵活应对各个子步骤的变化或者晚期实现需求?模式定义定义一个操作中的算法的骨架 (稳定) ,而将一些步骤延迟 (变化) 到子类中。 Template Method使得子类可以不改变(复用)一个算法...

2019-12-01 20:01:32 105 1

原创 设计模式笔记2:面向对象设计原则

1. 依赖倒置原则(DIP)高层模块(稳定)不应该依赖于低层模块(变化),二者都应该依赖于抽象(稳定) 。抽象(稳定)不应该依赖于实现细节(变化) ,实现细节应该依赖于抽象(稳定)。目的:隔离变化...

2019-11-30 22:15:54 118

原创 设计模式笔记1:设计模式简介

李建钟老师的视频链接23个设计模式什么是设计模式1.可复用2.面向对象如何解决复杂性?分解人们面对复杂性有一个常见的做法:即分而治之,将大问题分解为多个小问题,将复杂问题分解为多个简单问题。(不容易复用,C语言常用的方法之一)例子:绘制形状每个形状(线、矩形、圆形等)写一个处理类,绘制函数里根据用户设置的形状各自调用对应形状的处理函数。抽象更高层次来讲,人们处理复杂...

2019-11-30 21:52:41 105

原创 一些音频基础知识(整理)

预加重录制到唱片或录音带,最易受噪声影响的输入频率范围将会增加,这一经历的过程。去加重(DAC Deemphasis)播放时,应用反向变换(“去加重”),使得输出准确地再现原始输入,类似一个 噪音抑制电路 抑制了 正常的高频,所以你听起来 好像高音部分去掉了很多。...

2019-07-25 15:46:10 802

原创 Visual Studio error C2001:常量中有换行符

把代码格式改为带BOM的utf8就好了

2019-07-13 10:42:18 894

原创 “undefined symbol: _ZTVN4aiui12AIUIListenerE“ 的含义与兼容方式

场景由于项目需要,一套代码在两个产品上运行(开启不同的进程),但在其中一个硬件平台(假设为平台A)上并不需要使用讯飞语音服务的动态库libaiui.so,所以为了节省平台A的存储空间,决定不把libaiui.so放进文件系统中.遇到的问题由于使用同一套代码,都连接了libaiui.so,所以平台A上也需要一个libaiui.so,但由于没有使用到里面的函数,所以交叉编译了一个空的libaiu...

2018-11-05 10:02:51 2352

原创 RTP网络字节序

一. 填充12字节的头版本(V):2 比特,版本是 2。填充§:1 比特,值为0。扩展(X):1 比特,若设置扩展比特,固定头(仅)后面跟随一个头扩展,不 扩展,值为0。CSRC 计数(CC):4 比特,不使用,值为0。标志(M):1 比特,值为1时标志为该帧的最后一包。负载类型(PT):7 比特,此域定义了负载的格式,值为98,表示H.265。序列号(sequence nu...

2018-11-03 10:59:33 575

原创 局域网ARP欺骗

局域网ARP欺骗  使用Ubuntu与我的手机做实验, 欺骗路由器将回应手机的信息发到Ubuntu中去, 再进行抓包分析等.1.发现目标IP  可使用arp-scan -l或fpring(高级版ping)   如下使用fpring, 基本用法: fping批量扫描主机fping -g -r 0 -s 192.168.0.0/24  结果得到5个状态为active,...

2018-09-16 20:53:19 709

原创 Linux的新工作队列机制

线程与进程进程是资源分配的最小单位,线程是系统调度的最小单位原有的工作队列机制存在两个主要问题:1、并发性差,队列中的任务串行执行。2、资源占用较多。kworker新的工作队列机制引入任务资源池worker_pool概念; 工作线程由任务资源池负责创建和回收,工作队列不会创建工作线程。 当工作队列创建时,将工作队列绑定到特定的任务资源池。当用户使用queue_work等接口向...

2018-08-06 14:20:00 335

原创 有关"交流电"的基础知识

简介  通常波形为正弦曲线,在一个周期内的运行平均值为零; 交流电可以有效传输电力。峰值和有效值  正余弦交流电的峰值与振幅相对应,而有效值大小则由相同时间内产生相当焦耳热的直流电的大小来等效。   交流电峰值与均方根值(有效值)的关系为 。市电220V表示均方根值,其峰值为311V。功率振荡  假设使用单相电连接到纯电阻负载:   根据三角恒等式,可以得知...

2018-06-14 11:49:04 1418

原创 七牛云--qshell工具的使用

将qsell拷贝到/sbin.密钥设置 $ qshell account pk pk上传文件 qshell fput d6e80d6b5fe9 P18052114444810.jpg /sdcard/video/P18052114444810.jpg #注意区分大小写获取文件私有外链4.1 获取空间关联域名 qshell domains [空间名]4.2 生成私有外链 qs...

2018-06-12 13:58:01 1071

Focaltech_Touch_FT6236U_Driver_for_MTK_V3.0a_20180929.rar

FT6236U 测试例程,可以做为参考。

2020-05-20

en.en.TouchGFXDesigner_v4-12-3.zip

官网下载速度很慢;我这里下载了,共享一下..

2020-03-25

RT-thread 3.0 最新编程指南

RT-thread 3.0, 最新编程指南, 中文版, ,系统的介绍,还有例子,如任务调度,线程创建等。

2018-06-12

NotePad++ HexEditor插件(64位/32位)

NotePad++ HexEditor插件, 包含32位与64位。(64位绝对真实,插件管理器连不上谷歌时可下载该压缩包)

2018-06-04

周立功 嵌入式Linux开发教程(上+下册)

周立功;主要讲述进行嵌入式 Linux 开发所必备的基础知识,以实用和够用为标准进行介绍, 与嵌入式 Linux 开发不相关的知识都不在讲述之列。

2018-03-29

空空如也

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

TA关注的人

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