蓝牙协议栈

nrf51822开发中,蓝牙协议栈和应用开发是分开的。

(1)兼容蓝牙4.0低功耗协议栈基带层,L2CAP\AAT\SM\GAP\GATT协议,设备和广播,GATT客户端和服务器,SMP支持(包含MITM和OOB配对);

(2)应用部分和协议栈部分内存空间隔离;

(3)采用异步事件驱动程序架构

(4)没用使用RTOS,可以方便移植到任何RTOS;

(5)SoftDevice是使用标准的C语言编写的,它是已经被编译好的二进制文件,需要使用者将它烧写到芯片中。

(6)API包含了Generic Attribute Protocol (GATT), Generic Access Profile (GAP), Logical Link Control and Adaptation Protocol(L2CAP).

Radio Notification

Radio Notification功能用于SoftDevice向应用层通知ACTIVE和INACTIVE(nACTIVE)消息,这两个消息通过中断发出。

(1)ACTIVE信号在RADIO事件发生前发出;

(2)INACTIVE(nACTIVE)在RADIO事件结束前发出。

上图描述了时间的消耗,在tndist-tprep时间内数据发送到协议栈。

配置的各个时间应满足:tndist+tevent < tinterval.

下表描述了tndist和tinterval组合后可发送最大包个数的关系:

Bootloader

要使用bootloader,它的起始地址设置在UICR.BOOTADDR寄存器中。芯片复位后,SoftDevice检查UICR.BOOTADDR的值是否为0xffffffff,如果它不是,说明使用了bootloader,它使用bootloader起始地址处的中断向量表并启动程序。如果它是,则没有使用bootloader,程序跳转到应用程序中执行。

SoftDevice和应用层资源使用



可以看到,s110使用了80KB的ROM和8KB的RAM空间。

最新文章

  1. SqlServer灾备方案(本地)
  2. Openstack4j 在 Maven 中的构建
  3. Swift开发小技巧--private访问修饰符报错的情况
  4. winform 打印控件
  5. 【leetcode❤python】Binary Watch
  6. sso单点登录解决方案收集
  7. 没有在xml中引入 相关的配置文件
  8. [转]jenkins2 插件安装
  9. pd16.5增加字段备注
  10. 211806385 黄存慧 https://www.cnblogs.com/huangch/ https://github.com/HuangCh327
  11. Vivado Turtorial 01 —— 使用vivado中debug功能(类似ISE中ChipScope)
  12. BZOJ4237 稻草人 分治 单调栈
  13. 使用json改写网站
  14. Scrapy-Redis分布式策略
  15. sass的@at-root
  16. List与数组的相互转换
  17. 第5章 进程环境(1)_进程结构(task_struct)
  18. 12只超酷机器人,在家用3D打印搞定!
  19. [重要更新][Quartus II][14.1正式版]
  20. Java-CSV文件读取

热门文章

  1. JavaScript案例六:简单省市联动(NBA版)
  2. 用c++处理文件流
  3. reqSUB错误
  4. Complete the Sequence[HDU1121]
  5. input:focus
  6. HDU 2364 (记忆化BFS搜索)
  7. 避免常见的6种HTML5错误用法
  8. 解决Windows Server 2003不认U盘或移动硬盘的问题
  9. tableviewCell折叠状态3
  10. Css - 黑魔法