自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (4)
  • 收藏
  • 关注

原创 【BlueZ】【蓝牙】跨平台实现Ble Master&Slave&Mesh 之Linux篇-1

一,前述1,上一篇讲述了如何通过Windows实现蓝牙应用,该方式可适用于Windows/Linux/Macos等场景。([https://blog.csdn.net/u014028690/article/details/113943287?spm=1001.2014.3001.5502]),该方式比较特殊的一点,用了指定的蓝牙dongle设备,也规避了不同平台产生的差异而导致的问题。2,但是市面上更多的是WIFI+BT/BLE combo的芯片。针对该类设备,各个厂商都遵循统一的HCI接口以及适配协议

2021-02-26 15:43:44 2799 1

原创 【Win32】【蓝牙】跨平台实现Ble Master&Slave&Mesh 之Windows篇

一,背景1,基于Window开发蓝牙的需求较为迫切,且需要基于Windows的蓝牙能力应用于生产,工控设备控制以及设备交互等。2,基于Windows开发蓝牙存在很多弊端以及门槛,相对于上位机开发工程师而言,嵌入式软件工程师长期与蓝牙设备开发打交道,对蓝牙较为熟悉,所以衍生出来通过嵌入式开发底层接口,上位机开发UI等实现方式。二、设计思路1,模型框图2,具体设计硬件设计方案来自:Nordic52832三、具体代码分析如上设计,具体代码分为三部分:设备端固件、Windows PC Ho

2021-02-22 16:41:28 1888 2

原创 【BlueZ5】 如何用MGMT接口实现ble slave

如何用BlueZ MGMT接口实现Ble Slave一,关于MGMT接口1,为什么有MGMT接口In short, it’s a new interface for user space Bluetooth components (like bluetoothd) to talk to the kernel and it aims to replace the existing raw HCI sockets.关于这部分信息可以访问:http://www.bluez.org/the-manage

2020-07-10 11:25:50 3821 6

原创 【ESP32】ST7789滚屏驱动

320为滚动区域。

2023-07-18 17:25:25 1192 2

原创 【ESP-IDF】【Http-Client】No server verification option set in esp_tls_cfg_t structure. Check esp_tls

esp问题跟进

2023-04-11 11:22:14 607 2

原创 【蓝牙连接】深入连接细节分析

深入蓝牙BLE连接细节分析

2022-09-14 11:31:46 1080

原创 【Mesh】关于Mesh中Seq+IV与RPL分析

一,Mesh中SEQ,IV,RPL的含义1,SEQ(Sequence Number)SEQ是包含在网络 PDU 的 SEQ 字段中的 24 位值,主要用于防止重放攻击。同一节点内的元素可能会或可能不会彼此共享SEQ。在每个消息源(由 SRC 字段中包含的单播地址标识)的每个新网络 PDU 中具有不同的序列号对于网状网络的安全性至关重要。最大值:0xFFFFFF, 24 位序列号,一个元素可以在重复一个随机数之前传输 16,777,216 条消息。如果一个元素平均每 5 秒发送一次消息(对于已知用例

2022-05-31 17:00:00 1149

原创 关于SLIST,STAILQ,LIST,TAILQ,CIRCLEQ图示详解

一,前述由于接触蓝牙协议栈相关工作,涉及很多mbuf,mqueue的操作,其中不乏Berkeley queue的身影,故因此,深入了解一下链表以及队列相关操作,九几年的代码放在现在依旧经典,需要深入琢磨多次!该部分包含5个部分,单向链表,双向链表,队列,尾队列,环形队列。(注:在此之后,将依赖此深入了解mbuf与mqueue)文件索引地址:https://github.com/torvalds/linux/blob/master/drivers/scsi/aic7xxx/queue.h二,Sing

2022-03-23 14:42:23 1920 1

原创 【蓝牙】什么?还不知道蓝牙协议栈开源了?

一,前述这年头协议栈开源的太多了,掌握基础蓝牙协议栈作为嵌入式软件工程师的进阶技能。如果有了解并应用的市面上大部分蓝牙芯片,不妨看看如下内容,对于理解并提升蓝牙协议了解有一定帮助。本次文章主要说明如何去学习蓝牙Host协议栈,controller协议栈仅做参考。(conrtoller涉及PHY层,除非原厂深入,一般我们仅作了解)二,关于Host协议栈1, 源码链接上官方链接:https://mynewt.apache.org/上Github链接:https://github.com/apache

2022-03-21 16:57:40 13664 1

原创 【Linux】【蓝牙】如何基于Linux实现Beacon与Beacon Scan

一、背景最近在思考如何用最精简的方式实现beacon与beacon scan二、实现方式1,mgmt实现逻辑a: 扫描命令:{ "find", "[-l|-b] [-L]", cmd_find, "Discover nearby devices" },{ "find-service", "[-u UUID] [-r RSSI_Threshold] [-l|-b]", cmd_find_service, "Discover nearby service" },{ "stop-find",

2021-03-27 15:58:32 1444

原创 【ELL】ell学习之__builtin_expect(likely-unlikely)

一、前述在很多源码如Linux内核、Glib等,我们都能看到likely()和unlikely()这两个宏,通常这两个宏定义是下面这样的形式。// __builtin_expect()函数是GCC的一个内建函数(build-in function).// found in include/linux/compiler.h#define likely(x) __builtin_expect(!!(x), 1) // 表示 x 的值为真的可能性更大;#define unlikely(x) __

2021-03-08 11:06:14 383

原创 【基础】static搭配inline 味道更佳(explicit_bzero-rawmemchr)

最近在编译ELL,发现两个函数比较有意思,深入了解一下一、关于这两个函数/* The bzero() function writes len zero bytes to the string b. If len is zero, bzero() does nothing. The explicit_bzero() variant behaves the same, but will not be removed by a compiler's dead st.

2021-03-02 11:20:59 476

原创 【BlueZ5】如何用Android Bionic工具链编译blueZ5

一,关于Android Bionic1,Bionic是什么Bionic是Android平台为了使用C/C++进行原生应用程序开发所有提供的POSIX标准C库。它是Google为Android操作系统提供的BSD标准C库的衍生库。同时Bionic是专门为移动计算而精心设计的,针对移动设备上有限的CPU周期和可用内存进行了裁剪以提高工作效率。2,Bionic兼容性怎么样Bionic尽管是C标准库,但是它不以任何方式与其它C库二进制兼容。也就是说Bionic和其它C库不兼容,无法进行交叉编译和相互引用。

2021-02-22 11:33:51 831 2

原创 【Win32】无法解析的外部符号 __imp_RegEnumKeyExA/__imp_RegOpenKeyExA/__imp_RegQueryValueExA

一,问题描述error LNK2019: 无法解析的外部符号 __imp_RegEnumKeyExA,该符号在函数 "class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::c

2021-01-25 15:11:56 542 2

原创 【工具】Bash教程入门了解

Bash教程入门了解Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。 换一种说法也就是,shell script是利用shell的功能所写的一个程序,这个程序是使用纯文...

2020-03-22 19:14:31 420

转载 【Nordic】如何极致实现Nordic 蓝牙性能

在很多应用场合,BLE只是作为一个数据透传模块,即将设备端数据上传给手机,同时接收手机端下发的数据。本文将和大家一起,一步一步演示如何开发一个BLE透传应用程序。按照本文的说明,大家可以很快就实现一个BLE透传应用,BLE透传应用已经是BLE应用中比较复杂的一种,一旦大家掌握了BLE透传应用,其他BLE应用开发就更不在话下了。本文还将手把手教大家如何提高BLE数据传输速度(蓝牙4.2的理论吞吐率...

2020-03-14 13:07:49 4600 2

原创 【Bluez5】Bluez应用遇到的问题以及安装方式

运用SDK过程中遇到的问题1,如何安装环境(如下为PC Linux平台安装):wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.52.tar.xztar xvf bluez-5.52.tar.xzcd bluezsudo apt-get install libusb-dev libdbus-1-dev libglib2.0-de...

2020-03-14 12:41:40 858

原创 【BlueZ5】 板载驱动移植全过程,实现Ble Slave(Dbus版本)

一,编译依赖库与必要应用1,准备编译工作之前,需要了解什么是buildroot,跨平台的库与文件都通过buildroot来实现。About Buildroot:Buildroot is a tool that simplifies and automates the process of building a complete Linux system for an embedded s...

2020-03-13 23:34:44 2268 7

蓝牙协议栈学习资料Bluetooth Core

关于HCI与GATT协议栈学习资料,主要包含每一层协议,抓包分析等

2021-09-29

蓝牙协议文档Bluetooth Core Spec

包含当下所有core spec以及changes,包含ble + bt + mesh

2021-09-29

rtl8761b_bluetooth5.0_linux_driver.7z

关于Orico蓝牙5.0驱动linux版本: 进入目录直接执行:sudo make install INTERFACE=all 即可

2021-03-08

关于如何实现基于Windows Ble Peripheral和Central驱动的源码

关于如何实现基于Windows Ble Peripheral和Central驱动的源码

2021-02-22

空空如也

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

TA关注的人

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