cc2530 存储架构


在理解CC2530的51内核存储结构上面吃力了。先提出疑问,在swru191f-CC253xSystem-on-ChipSolutionfor2.4-GHz IEEE 802.15.4andZigBee® Application .pdf上面介绍如下的存储空间,但是确找不到对应的sram和256kb的flash 映射空间。

在CC2530的Dtasheet上面详细介绍了8051 CPU的存储架构

...

CC2650 Contiki 开发环境搭建


对于Contiki 6Lowpan所有开发资源,我们建议直接从官方推荐链接下载,同时我们维护一个百度云盘的链接。方便大家下载。

Instant Contiki是VMware的虚拟机镜像文件,Contiki已经部署好所有6LowPan交叉编译、仿真环境,同时打包好工具、源码到这个Instant Contiki镜像文件。所以我们只需要下载后解压,并且尝试VMware虚拟机软件打开。

...

SemiHosting


IAR和CCS都支持一种Semi-Hosting技术(半独立主机),这对产品早期开发的使用 printfSystem_printf 是非常方便的,轻易将调试信息打印在IDE的终端。但是一旦Semi-Hosting 使能,绝大的TI-RTOS例程在没有连接的IDE到时候不会运行,主要是因为类似 System_flush() API 需要等待IDE应答。区别其他IDE,CCS的握手机制不太一样,通过CCS编译生成的工程可以独立IDE运行。

对于Semi-Hosting,我们参考以下模型理解

...

pack sniffer 用以ble抓包


对于任何复杂协议的深入学习,我们都建议一个通用的学习方法,从规范->实现->抓包,规范是无关编程语言、语法文档表达,实现是各家SDK、API、源码,对于抓包则是对应实现理解规范。所以在BLE学习、研发过程抓包尤为重要。TI在这方面相比来说是做得相当好了,极大的简化了BLE的学习,熟练使用抓包工具,会大大降低蓝牙协议的技术入门槛,起到事半功倍的效果。
对于蓝牙空中抓包,暂时地我们只有使用CC2540 USB Dongle。成功下载PacketSniffer直接双击安装。

成功安装PacketSniffer,我们直接插入CC2540 USB Dongle到PC,会自动安装驱动,成功安装驱动后,再设备管理器我们能够发现以下设备。

...

BLE一次能传多少数据(ATT_MTU设置/LE Data扩展)


BLE 到底一包能够收发多少数据是很多开发者都会关心的。我们知道 BLE 5.0 物理层设计 2Mpbs 的码元率,实际数据传输速率远远到不了这个级别。主要原因是无法直接单次发送 1M 或者 1K 数据,必须按照我们知道的 ATT_MTU 作为最大值进行拆包发送,不断拆包的过程中导致整体蓝牙有效数据吞吐量下降。本章节,我们实用性出发研究如何究竟蓝牙一包能够发送多少数据。

以下是 GAPP Client 进行特征值写请求的完整抓包,AttValue 表示写入的值,该值的最大长度到底是多少呢?本文将详细研究并且验证。

...

LE Data Length Extension


数据长度扩展( LE Data Length Extension )功能允许 LE 控制器在连接状态下发送高达 251 字节的 PDU,在连接期间的任何时刻,主从设备可以协商该 PDU 大小。

对比 BLE4.0/4.1 的控制器数据通道最大有效载荷为 27 字节,使能数据扩展功能后的 BLE4.2/BLE5.0 能够达到 251 ,数据速率提高了大约 2.5 倍。

...

Logical Link Control and Adaptation Layer Protocol (L2CAP)


L2CAP 运行在 HCI 之上的 Host ,实现 Host 更高层(GAP、GATT、APP)和低层协议栈之间传输数据。

该层负责在 Host 和协议栈之间把交换的数据进行分割( segmentation )和重组( reassembly )以提供协议的多路处理能力。L2CAP 允许更高级别的协议和应用程序发送和接收高达 64KB(实际受限于蓝牙设备实际内存)的上层数据包(L2CAP 服务数据单元,SDU)。

...