【BLE进阶日记】⑦嵌入式应用程序开发

【BLE进阶日记】专栏目录

第一章 BLE介绍
第二章 BLE协议基础知识
第三章 BLE–GAP (Advertising and Connections)
第四章 BLE–GATT (Services and Characteristics)
第五章 BLE硬件平台
第六章 BLE调试工具
第七章 嵌入式应用程序开发



前言

本专栏旨在提供对低功耗蓝牙的一个坚实的、实用的、高水平的理解:数据是如何组织的,设备之间如何相互通信,以及协议设计团队所
做出的关键设计决策和权衡。
1. 第1~4章提供了低功耗蓝牙技术的高级概述,解释了数据是如何组织的以及它的关键限制,同时也介绍了所有你在使用BLE时可能遇到
   的关键概念。
2. 第5~6章介绍用于开发或对支持ble的应用程序或设备进行测试的有用工具(包括硬件和软件)。这些章节集中在低成本,易于访问的
   工具,以帮助你开始低成本开发。
3. 第7章介绍了您可能为BLE使用的主要开发平台(用于产品设计和嵌入式硬件工程师的各种嵌入式电子平台)。
本专栏提供了示例代码,您可以免费在程序和文档中使用它。

本章介绍了编译嵌入式设备代码所需的工具。使用在第5章中讨论的nRF51822-EK,结合自由、开源的GNU工具链和ARM交叉编译器,你将创建一个心率监测示例,使其可以本地运行在nRF51822 SoC上。


一、BLE嵌入式开发简介

本章主要介绍了一些针对任何想要为蓝牙低能耗外围设备创建自定义固件的人可用的现成的和开源的嵌入式开发套件和平台。首先介绍了一个高级BLE API,该API利用了由ARM创建和维护的mbed开发平台。如果您对嵌入式开发不太熟悉,这是一个很好的选择,因为它不需要您熟悉如何自己配置嵌入式工具链或在最低级别上使用嵌入式硬件。大部分复杂的固件实现问题和设置问题都方便地隐藏在易于使用的在线工具和高级API中。

第二部分介绍了嵌入式工具链,即一组用于将标准源代码转换为在嵌入式处理器上运行的可执行二进制文件的工具集合。本节展示了如何在Windows、OS X或Linux上设置交叉编译工具链来构建ARM二进制文件。

本章的最后部分展示了如何在实际应用中使用这些工具和概念,利用Nordic的nRF51822片上系统进行示例项目,该示例项目可以使用标准的心率配置文件将心率数据传输到iOS或Android设备。

二、mbed BLE API

ARM和其合作伙伴公司为了使使用ARM Cortex处理器来开发嵌入式硬件尽可能简单,创建了一个开源的开发平台,称为mbed。mbed允许您编写可在多种支持的ARM处理器上运行,并利用构建在这些处理器之上的API和组件的可移植代码。

您也可以使用mbed与免费的在线协作开发工具以及各种离线商业和开源工具链和IDE。大量的工作已经投入到定义高级API上,这些API将大部分低级芯片细节抽象出来,这些细节可能会占用整体开发预算的大部分。这使得可以重复使用在社区中共享的开源软件组件,并使固件工程师能够更多地专注于项目特定的代码,而不是关于他们选择的微控制器(MCU)的低级实现细节。

对于本章的目的来说,与此相关的是,ARM最近在mbed平台中添加了一个BLE API,它允许您在几十行代码和几小时的工作中实现一个简单的GATT服务器,而无需考虑关于堆栈或芯片组的任何特定供应商细节。

mbed提供了一种简单的方法,可以让您快速启动一个概念验证产品,同时仍然使用一个可以后续转移到生产环境的平台(如果需要,可以将代码导出到离线编译器)。BLE周围的高级抽象意味着您不必花费很多时间学习有关您的BLE SoC或模块的具体细节。例如,实例化标准的BLE服务或特征只需一行代码:

GattService hrmService(GattService::UUID_HEART_RATE_SERVICE);
GattCharacteristic hrmRate(GattCharacteristic::UUID_HEART_RATE_MEASUREMENT_CHAR, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量子君@极客工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值