基于 MS-RTOS 的 NIMBLE 开发平台

基于 MS-RTOS 的 NIMBLE 开发平台

软件环境:本平台的嵌入式操作系统为 MS-RTOS, BLE 协议为 nimble (1.3.0)

硬件平台:nrf52832

当前平台版本:IoT Studio 0.9.10

硬件连接如下:

在这里插入图片描述

所需硬件:

  • nrf 52832 蓝牙板子;
  • 一根 USB 供电线;
  • ARM 下载器,JTAG 转 SW 下载线。

使用情况

系统 BSP 支持功能:

  1. 用于调试的 uart0 驱动;

  2. 蓝牙协议栈所用的 Radio、RNG、RTC0 、Timer0 驱动;

  3. MS-RTOS 使用 SysTick 做为系统时基;

  4. 剩余外设未使用,可自定义应用场景。

BLE 支持功能:

  1. GAP Broadcaster,占用 Flash 约 142 KB,消耗 RAM 约 44 KB
  2. GAP Observer,占用 Flash 约 165 KB,消耗 RAM 约 44 KB
  3. GAP Peripheral,占用 Flash 约 142 KB,消耗 RAM 约 44 KB
  4. GAP Central,占用 Flash 约 160 KB,消耗 RAM 约 44 KB
  5. GATT 服务器,占用 Flash 约 159 KB,消耗 RAM 约 44 KB
  6. GATT 客户端,占用 Flash 约 162 KB,消耗 RAM 约 45 KB

快速使用

1、阅读库中如下三个文档,学习 nimble 相关开发:

  • nimble 蓝牙开发一:BLE 蓝牙 Host 规范;

  • nimble 蓝牙开发二:API 使用文档;

  • nimble 蓝牙开发三:nimble BLE 应用介绍。

2、将库中的 /nrf52832_nimble 文件夹做为完整的工程导入 IoT Studio。

上述两个步骤执行完毕后,则可以在此基础上进行自定义的蓝牙应用开发,下面将讲解一些示例应用的实际运行步骤。

nimble_startup函数

当开发蓝牙应用时,我们必须在nimble_startup() 中启动 nimble 协议栈,并运行自定义的蓝牙代码。

注意!函数名必须是nimble_startup

因为在 MS-RTOS 系统启动过程中,会调用该函数。在启动文件中,已经声明了一个空的弱函数,这个弱函数可以被自定义的函数取代。如下:

在这里插入图片描述

注意!自定义的nimble_startup()不能阻塞。否则 MS-RTOS 系统启动不了

GAP Broadcaster 示例工程

该应用实现位于nrf52832_nimble/nimble/apps/advertiser目录下,运行步骤如下:

  • nrf52832_nimble/nimble/apps/advertiser文件夹下的所有 .c 文件添加到 makefile 中,即库中的 nrf52832_hal.mk 文件。
  • 在这里插入图片描述
  • 红框中的不需要改动,只在 nrf52832_hal.mk 文件中添加箭头所指的 .c 文件即可, 其路径即是该文件在工程中的路径,该 .c 文件包含 nimble_startup()。
  • 我们必须保证蓝牙应用在 nimble_startup() 中运行,这个自定义的nimble_startup() 将会取代启动过程中的nimble_startup() 被芯片执行:
  • 在这里插入图片描述
  • 编译、下载、运行。

GAP Observer示例工程

该应用实现位于nrf52832_nimble/nimble/apps/scanner目录下。运行步骤如下:

  • nrf52832_nimble/nimble/apps/scanner文件夹下的所有 .c 文件添加到 makefile 中,即库中的 nrf52832_hal.mk 文件。
  • 在这里插入图片描述
  • 红框中的不需要改动,只需要修改需要编译的 .c 文件,即包含 nimble_startup() 的文件及其调用的源文件。
  • 编译、下载、运行。

GAP Peripheral示例工程

该应用实现位于nrf52832_nimble/nimble/apps/peripheral目录下。运行步骤如下:

  • nrf52832_nimble/nimble/apps/peripheral文件夹下的所有 .c 文件添加到 makefile 中,即库中的 nrf52832_hal.mk 文件。
  • 在这里插入图片描述
  • 红框中的不需要改动,只需要修改需要编译的 .c 文件,即包含 nimble_startup() 的文件及其调用的源文件。
  • 编译、下载、运行。

GAP Central 示例工程

该应用实现位于nrf52832_nimble/nimble/apps/central目录下。运行步骤如下:

  • nrf52832_nimble/nimble/apps/central文件夹下的所有 .c 文件添加到 makefile 中,即库中的 nrf52832_hal.mk 文件。
  • 在这里插入图片描述
  • 红框中的不需要改动,只需要修改需要编译的 .c 文件,即包含 nimble_startup() 的文件及其调用的源文件。
  • 编译、下载、运行。

GATT 服务器示例工程

该应用实现位于nrf52832_nimble/nimble/apps/bleprph目录下。运行步骤如下:

  • nrf52832_nimble/nimble/apps/bleprph文件夹下的所有 .c 文件添加到 makefile 中,即库中的 nrf52832_hal.mk 文件。
  • 在这里插入图片描述
  • 红框中的不需要改动,只需要修改需要编译的 .c 文件,即包含 nimble_startup() 的文件及其调用的源文件.
  • 不需要包含 phy.c。
  • 编译、下载、运行。

GATT 客户端示例工程

该应用实现位于nrf52832_nimble/nimble/apps/blecent目录下。运行步骤如下:

  • nrf52832_nimble/nimble/apps/blecent文件夹下的所有 .c 文件添加到 makefile 中,即库中的 nrf52832_hal.mk 文件。
  • 在这里插入图片描述
  • 红框中的不需要改动,只需要修改需要编译的 .c 文件,即包含 nimble_startup() 的文件及其调用的源文件.
  • 编译、下载、运行。
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页