应用层可以分为两部分,
以从机为例,我们可以通过GATT层定义自己的Profile,供主端设备读取放在从机服务器上的数据;
另外我们需要做自己的应用层程序,这个和普通MCU并无差别。
需要注意的是,市面上流行的芯片的软件框架都是基于RTOS展开,应用层单独是一个TASK执行,协议栈是另外的TASK在执行,
协议栈是通过回调函数和应用层进行交互,协议栈通过消息传递机制让应用层TASK知道有蓝牙相关的操作,
应用层通过相应的回调函数发现是GAP层的状态改变还是GATT层有数据进行传递,然后执行我们设计的功能。
http://bbs.21ic.com/icview-966816-1-1.html
arm-linux-bluez
https://github.com/bluekitchen/btstack
https://github.com/RT-Thread-packages/nimble
https://github.com/zephyrproject-rtos/zephyr.git
Zephyr
Zephyr从头编写了低功耗蓝牙 (BLE) 实施方案,并移植了开源 Contiki RTOS 中的 IP 堆栈,支持蓝牙、低功耗蓝牙、IEEE 802.15.4、6Lowpan、CoAP、IPv4、IPv6、NFC,以及Arduino 101、Arduino Due、第二代英特尔 Galileo 开发板、NXP FRDM-K64F Freedom 开发板等