05 2021 档案
摘要:1.指针和数组区别 #define MSG "abcd" const char arr[] = MSG; const char *pt = MSG; (1)“const char arr[] = MSG” 数组形式arr[]在内存中分配一个含有5个元素的数组(加上末尾的'\0'),每个元素初始化为字
阅读全文
posted @ 2021-05-27 16:43
张妖刀
摘要:BLE Packet格式 BLE链路层定义了一种packet格式如下图: 而且PDU(protocol data unit,协议数据单元)前两个字节固定为LL header(1个字节长)和payload length(1个字节长,又称data length),即上面的Packet可以展开为: pre
阅读全文
posted @ 2021-05-06 15:13
张妖刀
摘要:广播(advertising) 设备A要跟设备B建立连接之前,设备B需要先进行广播,即设备B不断发送广播信号,t为广播间隔。没发送一次广播包,称为一次广播事件,因此t也称为广播事件间隔。按照蓝牙spec,实际上每一个广播事件包含三个广播包,即分别在37/38/39三个射频通道上同时广播相同的信息。
阅读全文
posted @ 2021-05-06 14:51
张妖刀
摘要:协议栈框架: 如上图所示,要实现一个BLE应用,首先需要一个支持BLE射频的芯片,和一个与芯片匹配的BLE协议栈,最后在协议栈上开发自己的应用。BLE协议栈主要用来对应用数据进行层层封装,以生成一个满足BLE协议的空中数据包。 PHY层(物理层):PHY层用来指定BLE所用的无线频段,调制解调方式和
阅读全文
posted @ 2021-05-06 14:25
张妖刀
摘要:一般内存中主要分为:代码区、常量区、静态区(全局区)、堆区、栈区。内存示意图: 栈区:存放函数内的局部变量、形参和函数返回值。系统会自动管理 堆区:由malloc()主动申请、使用free()主动释放 静态区(全局区):静态变量和全局变量,一旦静态区的内存被分配,静态区的内存直到程序全部结束才会释放
阅读全文
posted @ 2021-05-06 13:29
张妖刀
摘要:对齐方式: 1.使用#pragma pack(n)来指定数据结构的对齐值 2.使用 __attribute__ ((packed)) ,让编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,这样子两边都需要使用 __attribute__ ((packed))取消优化对齐 字节对齐详解
阅读全文
posted @ 2021-05-06 11:50
张妖刀

浙公网安备 33010602011771号