撸蓝牙5 – 开始SoftDeivce大致浏览

/ 0评 / 0

SoftDeivce 有S132,S140,S212,S332都是什么鬼啊,好乱啊.
简单来说SoftDevice就是协议栈,类似于TI CC3200要预先烧写个什么东西,给跑网络协议用的,里面的API开源也没用.
SoftDevices 就是个已经编译好的二进制IMAGE,具有确定性啊各种优点,总之我们只要专心做APP就行,把这个东西当成ST的HAL库就没问题了.
S132 是BLE中央和外设协议栈解决方案,支持二十个连接,一个观察者和一个广播角色同时运行.这是最普遍的.
S140就是为了支持蓝牙5.0的.
S212和S332是ANT(不知道是什么东西)的一个专用的库.
我们着重看S132,也是最流行最通用,也是要用得最多的一个.虽然最新板子支持蓝牙5都用S140.另外发现所有softdevice函数都是sd开头的.

在源码里面关键的ble_stack_init基本就是调用sd函数了.还有关于GAP的配置之类也是涉及sd的函数,sd的函数也是在主处理器执行的,所以NRF的器件会有timeslot,这个timeslot就是控制什么时候执行sd什么时候执行app的,当然sd执行优先级是最高的,所以如果要用IO模拟协议的朋友就有点麻烦了.
一开始我看到这个函数,就懵逼了.

BLE_COMMON_CFG_VS_UUID是UUID的意思吧,但是为什么文档没有写呢.enum看到了,原来他属于BLE_COMMON_CFGS一个分支,

其他地方也是没区别的.关于GAP还有个特别的地方,就是GAP的函数不一样.

但是.

根据字面意思是设置GAP的名字.概念真的很多,还有GATT等.还有Advertising这些类似的.
概念太多了,一下子理解不来,好挫败,还是先了解下基础概念吧,睡觉.

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注