最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

国民技术 N32WB03x SDK使用指南

IT圈 admin 48浏览 0评论

2024年7月16日发(作者:烟欣可)

使用指南

N32WB03x SDK使用指南

简介

此文档的目的在于让使用者能够快速熟悉N32WB03x系列蓝牙SOC芯片的开发套件以及Keil

MDK-ARM的相关设定,以减少开发前期的准备时间,降低开发难度

1 / 12

目录

简介 ............................................................................................................................................................................. 1

1 SDK/开发固件文件目录结构 ................................................................................................................................... 3

1.1

FIRMWARE

................................................................................................................................................................... 3

1.2

MIDDLEWARE

............................................................................................................................................................... 3

1.3

UTILITIES

..................................................................................................................................................................... 4

1.4

PROJECTS

..................................................................................................................................................................... 4

2 项目配置与烧录 ....................................................................................................................................................... 6

2.1

编译环境安装............................................................................................................................................................ 6

2.2

固件支持包安装 ........................................................................................................................................................ 6

2.3

编译环境配置............................................................................................................................................................ 6

2.4

编译与下载................................................................................................................................................................ 7

2.5

BLE工程目录结构 ..................................................................................................................................................... 7

3 MEMORY分配 ......................................................................................................................................................... 9

3.1

F

LASH

分配 .................................................................................................................................................................. 9

3.2

RAM ........................................................................................................................................................................... 9

4 系统时钟 ................................................................................................................................................................. 10

4.1

不带蓝牙协议栈例程 .............................................................................................................................................. 10

4.2

蓝牙例程 ................................................................................................................................................................. 10

5 版本历史 ................................................................................................................................................................. 11

6 声明 ......................................................................................................................................................................... 12

2 / 12

1 SDK/开发固件文件目录结构

SDK 目录下是一个以固件库版本命名的文件,其中包含四个子文件夹:

1.1 firmware

◼ CMSIS:

微控制器软件接口标准,是Cortex-M处理器系列的与供应商无关的硬件抽象层, CMSIS提供了内核与外设、

实时操作系统和中间设备之间的通用接口。

⚫ 包含了用来访问内核的寄存器设备的名称定义,地址定义和配置函数。该接口包括调试通道定义。

⚫ 提供片上所有外设的定义,包括所有外设寄存器头文件、启动文件、系统初始化模板文件。

◼ n32wb03x_std_periph_driver:

芯片外设的标准驱动函数,包括.c 的源文件和.h 的头文件。用户可移植到项目中,快速完成对某个外设模

块的使用。

1.2 middleware

中间层固件,主要如下两个目录:

◼ Third_Party

⚫ FreeRTOS: FreeRTOS相关库

3 / 12

◼ Nationstech

⚫ ble_library: 蓝牙BLE相关库

◆ ns_ble_stack: ble蓝牙协议栈头文件

◆ ns_ble_profile: ble profile库源码

◆ ns_library: ble程序其他库源码,包含log,sleep和timer等

1.3 utilities

工具软件目录, 里面主要包含:

◼ dfu

dfu固件升级相关工具软件目录和调用这些工具的bat脚本

⚫ Image:使用bat脚本生成的bin文件和用于DFU演示的bin文件

⚫ JLink:烧录工具

⚫ Keys:用于生成dfu升级bin的密匙

⚫ NSAndroidUtil: DFU测试APK

⚫ NSUtil:串口升级工具软件和源码

1.4 projects

Projects目录包含开发板目录,开发板目录下包含:

◼ bsp:包含调试串口打印功能的log函数,用于外设例程在调试过程答应各种调试信息。

◼ application:应用例程,使用了多种外设或者功能需求的综合性例程

⚫ peripheral_alone: 外设综合例程,包含串口通信,TIM的PWM输出,ADC读取和转为电压,IO

输出,IO输入中断响应和RTC休眠唤醒

⚫ FreeRTOS:Freertos相关例程

◼ ble:蓝牙从机例程,通过对具体profile的蓝牙例程了解蓝牙程序开发的基本方法

⚫ dis:设备服务例程

⚫ hid_mouse: 蓝牙鼠标例程

⚫ rdtss: 蓝牙数传例程(128bit UUID),包含DFU空中升级项目选项

⚫ rdtss_16bit: 蓝牙数传例程(16bit UUID),包含DFU空中升级项目选项

⚫ rdtss_3s: 蓝牙数传例程(128bit UUID), 支持连接3个主机设备的多连接例程。

⚫ heart_rate: 蓝牙心率服务例程

4 / 12

⚫ blood_pressure: 蓝牙血压服务例程。

◼ ble_central:蓝牙主机例程

⚫ central_rdtsc:蓝牙数传服务主机例程。可以配合rdtss例程使用。

⚫ central_rdts_c&s:蓝牙数传服务主机和从机模式切换例程。可以配合rdtss或central_rdtsc例程使用。

⚫ central_rdtsc_3m:蓝牙数传服务主机例程,支持连接3个从机的多连接例程。

⚫ central_relay_1m1s:蓝牙数传服务中继例程,即一主一从同时工作。可以配合rdtss例程使用。

◼ dfu:设备固件升级例程

⚫ common: dfu公共库目录

⚫ app_ota:蓝牙空中升级例程

⚫ image_update:单bank模式下,image_update例程源码

⚫ app_usart:串口升级例程(跳转masterboot)

⚫ masterboot:固件升级boot,包含串口升级,固件校验和跳转

◼ prod_test: 量产测试例程

⚫ DTM_Test:标准HCI接口DTM指令测试例程,默认串口USART1(PB6和PB7),需要连接蓝牙

测试仪测试。

⚫ RF_Test:支持串口指令启动BLE TX,RX和定频测试,可以连接PC上位机发送指令。

◼ peripheral: 包含各个外设功能模块的例程项目,实现每个外设模块的基本功能应用开发,用户可以通过

这些例程项目快速了解芯片外设用法。

5 / 12

2 项目配置与烧录

2.1 编译环境安装

请安装KEIL MDK-ARM开发环境,版本要求为V5.00以上,建议使用V5.24.2.0。

2.2 固件支持包安装

双击运行N32WB03x_安装Keil芯片支持包。

2.3 编译环境配置

注:所有例程已经按如下配置完成,所以运行例程不需要重新配置编译环境。

◼ Target页的FLASH和RAM配置

⚫ 不包含ble功能项目

⚫ 包含ble功能项目target页

⚫ 带DFU功能项目,请参考《固件升级使用指南.PDF》

◼ Linker页

⚫ 勾选使用Target页的memory配置

⚫ 带ble项目需要加middlewaresNationstechble_libraryns_ble_stacksymdefsymbol_文件于

Misc control,注意包含蓝牙主机功能的程序使用的obj文件是symbol_g15_

6 / 12

◼ Debug页

⚫ 调试器选择CMSIS-DAP Debugger作为开发板上的NS-Link

⚫ Setting页面如下图

2.4 编译与下载

◼ 编译:点击菜单的build按钮

◼ 下载:点击菜单的download按钮

◼ 调试:点击菜单的start/stop debug session按钮

注意:下载程序后无法继续再下载

◼ 可能1: 代码中将SWDIO/SWDCLK用作其他用途,导致仿真接口失效。一般情况下不建议使用仿真引

脚用作其他功能设计

◼ 可能2: 芯片进入低功耗sleep模式,此时仿真接口失效,需要在唤醒状态下下载。

2.5 BLE工程目录结构

以rdtss蓝牙项目工程为例

◼ Project Target

⚫ N32WB03x: 蓝牙工程,不带DFU配置,一般ble项目只有这个target

⚫ OTA_IMG_1:带蓝牙OTA工程,配置为Bank1地址

⚫ OTA_IMG_2:带蓝牙OTA工程,配置为Bank2地址

7 / 12

◼ 目录结构如下

⚫ STARTUP:芯片启动文件

⚫ CMSIS:芯片内核配置

⚫ FWLB:芯片外设驱动库

⚫ BLE_STACK:蓝牙BLE协议栈

⚫ BLE_PROFILE:蓝牙BLE profile

⚫ NS_DUF(可选):蓝牙OTA固件升级相关库

⚫ Crypto(可选):蓝牙OTA固件升级使用的加密相关库

⚫ NS_LIB:蓝牙应用相关库

⚫ BLE_APP:蓝牙应用代码

⚫ USER:用户应用代码

⚫ CONFIG:配置文件

⚫ DOC:说明文档

8 / 12

3 Memory分配

3.1 Flash分配

N32WB031芯片FLASH地址范围是0x01000000 - 0x0107FFFF,总空间为512K字节,分为BankA、BankB两个

Bank,空间大小分别是256K字节,BankA地址范围是0x01000000 - 0x0103FFFF,BankB地址范围是

0x01040000 - 0x0107FFFF。用户代码运行范围只能是其中一个Bank,默认使用BankA。注意N32WB031KC

系列FLASH空间是256K,即只有BankA区域。

需要使用固件升级功能请参考《固件升级使用指南.PDF》里面的FLASH内存分布章节。

Start address: 0x1000000

Bank A

Start address: 0x1040000

Bank B

3.2 RAM

N32WB031芯片RAM地址范围是0x20000000 - 0x2000BFFF,可用空间为48K字节

◼ 如果使用蓝牙功能,蓝牙协议栈将占用0x20000000 - 0x20003FFF,总共16K字节RAM,用户代码可以

使用0x20004000 - 0x2000BFFF,总共32K字节RAM

◼ 如果不用蓝牙功能,则用户代码可以使用全部48K字节RAM

Start address: 0x20000000

Start address: 0x20000000

BLE Stack 16K Byte

Start address: 0x20004000

User code 48K Byte

不使用蓝牙协议栈

User code 32K Byte

使用蓝牙协议栈

9 / 12

4 系统时钟

4.1 不带蓝牙协议栈例程

系统时钟源可以选择HSE或者HSI,所有外设例程默认使用HSI 64M作为系统时钟源。低速时钟源可以选择

外部晶体LSE 32.768K或者内部LSI 32K时钟源。

4.2 蓝牙例程

所有蓝牙例程默认使用HSI 64M作为系统时钟源,使用LSI作为低速时钟源,必须外接32M晶体为蓝牙射频

专用时钟源。系统时钟源不建议更改,低速时钟源可以选择外部晶体LSE 32.768K或者内部LSI 32K时钟源,

但是只能在蓝牙协议栈初始化函数里配置LSI或者LSE并初始化低速时钟源,用户代码后续不能切换低速时

钟源,否则将影响蓝牙协议栈的功能。

10 / 12

5 版本历史

日期

2021.08.05

2021.12.22

2022.03.31

版本

V1.0

V1.1

V1.2

修改

初始版本

添加主机例程部分描述

章节1.5添加蓝牙血压服务和主从切换例程。

章节2.2替换FLM文件描述为安装Pack包。

章节2.3增加主机OBJ文件描述。

章节3.1增加256K Flash版本芯片描述。

2022.12.29 V1.3 章节1.1移除doc章节

章节1.4增加例程描述:rdtss_3s, rdtsc_3m, DTM_Test和RF_Test.

11 / 12

6 声明

国民技术股份有限公司(以下简称国民技术)保有不事先通知而修改的权利。国民技术认为提供的信息准

确可信,尽管这样,国民技术对准确性和可靠性不承担任何责任。购买前请获取器件说明的最新版本。在

法律允许的最大范围内,任何明示、暗示或保证,包括但不限于适销性、特定用途适用性和第三方知识产

权侵权责任,国民技术概不承担不承认。在任何情况下,国民技术均不对因使用本产品而产生的任何直接、

间接、偶然、特殊、惩戒性或后果性损害负责,即使已告知可能发生此类损害。不建议应用于与生命相关

的设备和系统。国民技术对本手册拥有专属产权。未经明确许可,任何人不得以任何理由对本手册的全部

或部分进行使用、复制、修改、抄录、传播。

12 / 12

2024年7月16日发(作者:烟欣可)

使用指南

N32WB03x SDK使用指南

简介

此文档的目的在于让使用者能够快速熟悉N32WB03x系列蓝牙SOC芯片的开发套件以及Keil

MDK-ARM的相关设定,以减少开发前期的准备时间,降低开发难度

1 / 12

目录

简介 ............................................................................................................................................................................. 1

1 SDK/开发固件文件目录结构 ................................................................................................................................... 3

1.1

FIRMWARE

................................................................................................................................................................... 3

1.2

MIDDLEWARE

............................................................................................................................................................... 3

1.3

UTILITIES

..................................................................................................................................................................... 4

1.4

PROJECTS

..................................................................................................................................................................... 4

2 项目配置与烧录 ....................................................................................................................................................... 6

2.1

编译环境安装............................................................................................................................................................ 6

2.2

固件支持包安装 ........................................................................................................................................................ 6

2.3

编译环境配置............................................................................................................................................................ 6

2.4

编译与下载................................................................................................................................................................ 7

2.5

BLE工程目录结构 ..................................................................................................................................................... 7

3 MEMORY分配 ......................................................................................................................................................... 9

3.1

F

LASH

分配 .................................................................................................................................................................. 9

3.2

RAM ........................................................................................................................................................................... 9

4 系统时钟 ................................................................................................................................................................. 10

4.1

不带蓝牙协议栈例程 .............................................................................................................................................. 10

4.2

蓝牙例程 ................................................................................................................................................................. 10

5 版本历史 ................................................................................................................................................................. 11

6 声明 ......................................................................................................................................................................... 12

2 / 12

1 SDK/开发固件文件目录结构

SDK 目录下是一个以固件库版本命名的文件,其中包含四个子文件夹:

1.1 firmware

◼ CMSIS:

微控制器软件接口标准,是Cortex-M处理器系列的与供应商无关的硬件抽象层, CMSIS提供了内核与外设、

实时操作系统和中间设备之间的通用接口。

⚫ 包含了用来访问内核的寄存器设备的名称定义,地址定义和配置函数。该接口包括调试通道定义。

⚫ 提供片上所有外设的定义,包括所有外设寄存器头文件、启动文件、系统初始化模板文件。

◼ n32wb03x_std_periph_driver:

芯片外设的标准驱动函数,包括.c 的源文件和.h 的头文件。用户可移植到项目中,快速完成对某个外设模

块的使用。

1.2 middleware

中间层固件,主要如下两个目录:

◼ Third_Party

⚫ FreeRTOS: FreeRTOS相关库

3 / 12

◼ Nationstech

⚫ ble_library: 蓝牙BLE相关库

◆ ns_ble_stack: ble蓝牙协议栈头文件

◆ ns_ble_profile: ble profile库源码

◆ ns_library: ble程序其他库源码,包含log,sleep和timer等

1.3 utilities

工具软件目录, 里面主要包含:

◼ dfu

dfu固件升级相关工具软件目录和调用这些工具的bat脚本

⚫ Image:使用bat脚本生成的bin文件和用于DFU演示的bin文件

⚫ JLink:烧录工具

⚫ Keys:用于生成dfu升级bin的密匙

⚫ NSAndroidUtil: DFU测试APK

⚫ NSUtil:串口升级工具软件和源码

1.4 projects

Projects目录包含开发板目录,开发板目录下包含:

◼ bsp:包含调试串口打印功能的log函数,用于外设例程在调试过程答应各种调试信息。

◼ application:应用例程,使用了多种外设或者功能需求的综合性例程

⚫ peripheral_alone: 外设综合例程,包含串口通信,TIM的PWM输出,ADC读取和转为电压,IO

输出,IO输入中断响应和RTC休眠唤醒

⚫ FreeRTOS:Freertos相关例程

◼ ble:蓝牙从机例程,通过对具体profile的蓝牙例程了解蓝牙程序开发的基本方法

⚫ dis:设备服务例程

⚫ hid_mouse: 蓝牙鼠标例程

⚫ rdtss: 蓝牙数传例程(128bit UUID),包含DFU空中升级项目选项

⚫ rdtss_16bit: 蓝牙数传例程(16bit UUID),包含DFU空中升级项目选项

⚫ rdtss_3s: 蓝牙数传例程(128bit UUID), 支持连接3个主机设备的多连接例程。

⚫ heart_rate: 蓝牙心率服务例程

4 / 12

⚫ blood_pressure: 蓝牙血压服务例程。

◼ ble_central:蓝牙主机例程

⚫ central_rdtsc:蓝牙数传服务主机例程。可以配合rdtss例程使用。

⚫ central_rdts_c&s:蓝牙数传服务主机和从机模式切换例程。可以配合rdtss或central_rdtsc例程使用。

⚫ central_rdtsc_3m:蓝牙数传服务主机例程,支持连接3个从机的多连接例程。

⚫ central_relay_1m1s:蓝牙数传服务中继例程,即一主一从同时工作。可以配合rdtss例程使用。

◼ dfu:设备固件升级例程

⚫ common: dfu公共库目录

⚫ app_ota:蓝牙空中升级例程

⚫ image_update:单bank模式下,image_update例程源码

⚫ app_usart:串口升级例程(跳转masterboot)

⚫ masterboot:固件升级boot,包含串口升级,固件校验和跳转

◼ prod_test: 量产测试例程

⚫ DTM_Test:标准HCI接口DTM指令测试例程,默认串口USART1(PB6和PB7),需要连接蓝牙

测试仪测试。

⚫ RF_Test:支持串口指令启动BLE TX,RX和定频测试,可以连接PC上位机发送指令。

◼ peripheral: 包含各个外设功能模块的例程项目,实现每个外设模块的基本功能应用开发,用户可以通过

这些例程项目快速了解芯片外设用法。

5 / 12

2 项目配置与烧录

2.1 编译环境安装

请安装KEIL MDK-ARM开发环境,版本要求为V5.00以上,建议使用V5.24.2.0。

2.2 固件支持包安装

双击运行N32WB03x_安装Keil芯片支持包。

2.3 编译环境配置

注:所有例程已经按如下配置完成,所以运行例程不需要重新配置编译环境。

◼ Target页的FLASH和RAM配置

⚫ 不包含ble功能项目

⚫ 包含ble功能项目target页

⚫ 带DFU功能项目,请参考《固件升级使用指南.PDF》

◼ Linker页

⚫ 勾选使用Target页的memory配置

⚫ 带ble项目需要加middlewaresNationstechble_libraryns_ble_stacksymdefsymbol_文件于

Misc control,注意包含蓝牙主机功能的程序使用的obj文件是symbol_g15_

6 / 12

◼ Debug页

⚫ 调试器选择CMSIS-DAP Debugger作为开发板上的NS-Link

⚫ Setting页面如下图

2.4 编译与下载

◼ 编译:点击菜单的build按钮

◼ 下载:点击菜单的download按钮

◼ 调试:点击菜单的start/stop debug session按钮

注意:下载程序后无法继续再下载

◼ 可能1: 代码中将SWDIO/SWDCLK用作其他用途,导致仿真接口失效。一般情况下不建议使用仿真引

脚用作其他功能设计

◼ 可能2: 芯片进入低功耗sleep模式,此时仿真接口失效,需要在唤醒状态下下载。

2.5 BLE工程目录结构

以rdtss蓝牙项目工程为例

◼ Project Target

⚫ N32WB03x: 蓝牙工程,不带DFU配置,一般ble项目只有这个target

⚫ OTA_IMG_1:带蓝牙OTA工程,配置为Bank1地址

⚫ OTA_IMG_2:带蓝牙OTA工程,配置为Bank2地址

7 / 12

◼ 目录结构如下

⚫ STARTUP:芯片启动文件

⚫ CMSIS:芯片内核配置

⚫ FWLB:芯片外设驱动库

⚫ BLE_STACK:蓝牙BLE协议栈

⚫ BLE_PROFILE:蓝牙BLE profile

⚫ NS_DUF(可选):蓝牙OTA固件升级相关库

⚫ Crypto(可选):蓝牙OTA固件升级使用的加密相关库

⚫ NS_LIB:蓝牙应用相关库

⚫ BLE_APP:蓝牙应用代码

⚫ USER:用户应用代码

⚫ CONFIG:配置文件

⚫ DOC:说明文档

8 / 12

3 Memory分配

3.1 Flash分配

N32WB031芯片FLASH地址范围是0x01000000 - 0x0107FFFF,总空间为512K字节,分为BankA、BankB两个

Bank,空间大小分别是256K字节,BankA地址范围是0x01000000 - 0x0103FFFF,BankB地址范围是

0x01040000 - 0x0107FFFF。用户代码运行范围只能是其中一个Bank,默认使用BankA。注意N32WB031KC

系列FLASH空间是256K,即只有BankA区域。

需要使用固件升级功能请参考《固件升级使用指南.PDF》里面的FLASH内存分布章节。

Start address: 0x1000000

Bank A

Start address: 0x1040000

Bank B

3.2 RAM

N32WB031芯片RAM地址范围是0x20000000 - 0x2000BFFF,可用空间为48K字节

◼ 如果使用蓝牙功能,蓝牙协议栈将占用0x20000000 - 0x20003FFF,总共16K字节RAM,用户代码可以

使用0x20004000 - 0x2000BFFF,总共32K字节RAM

◼ 如果不用蓝牙功能,则用户代码可以使用全部48K字节RAM

Start address: 0x20000000

Start address: 0x20000000

BLE Stack 16K Byte

Start address: 0x20004000

User code 48K Byte

不使用蓝牙协议栈

User code 32K Byte

使用蓝牙协议栈

9 / 12

4 系统时钟

4.1 不带蓝牙协议栈例程

系统时钟源可以选择HSE或者HSI,所有外设例程默认使用HSI 64M作为系统时钟源。低速时钟源可以选择

外部晶体LSE 32.768K或者内部LSI 32K时钟源。

4.2 蓝牙例程

所有蓝牙例程默认使用HSI 64M作为系统时钟源,使用LSI作为低速时钟源,必须外接32M晶体为蓝牙射频

专用时钟源。系统时钟源不建议更改,低速时钟源可以选择外部晶体LSE 32.768K或者内部LSI 32K时钟源,

但是只能在蓝牙协议栈初始化函数里配置LSI或者LSE并初始化低速时钟源,用户代码后续不能切换低速时

钟源,否则将影响蓝牙协议栈的功能。

10 / 12

5 版本历史

日期

2021.08.05

2021.12.22

2022.03.31

版本

V1.0

V1.1

V1.2

修改

初始版本

添加主机例程部分描述

章节1.5添加蓝牙血压服务和主从切换例程。

章节2.2替换FLM文件描述为安装Pack包。

章节2.3增加主机OBJ文件描述。

章节3.1增加256K Flash版本芯片描述。

2022.12.29 V1.3 章节1.1移除doc章节

章节1.4增加例程描述:rdtss_3s, rdtsc_3m, DTM_Test和RF_Test.

11 / 12

6 声明

国民技术股份有限公司(以下简称国民技术)保有不事先通知而修改的权利。国民技术认为提供的信息准

确可信,尽管这样,国民技术对准确性和可靠性不承担任何责任。购买前请获取器件说明的最新版本。在

法律允许的最大范围内,任何明示、暗示或保证,包括但不限于适销性、特定用途适用性和第三方知识产

权侵权责任,国民技术概不承担不承认。在任何情况下,国民技术均不对因使用本产品而产生的任何直接、

间接、偶然、特殊、惩戒性或后果性损害负责,即使已告知可能发生此类损害。不建议应用于与生命相关

的设备和系统。国民技术对本手册拥有专属产权。未经明确许可,任何人不得以任何理由对本手册的全部

或部分进行使用、复制、修改、抄录、传播。

12 / 12

发布评论

评论列表 (0)

  1. 暂无评论