2 简介
INGCHIPS 软件开发工具包包含以下主要组件(图 2.1):
核心工具
提供项目向导,Flash 下载器及其它功能。这些工具可使 BLE 开发更简单、流畅。
语言和 IDE 集成
支持
Keil μVision
1 ,IAR Embedded Workbench
2 ,Rowley Crossworks for ARM
3 ,SEGGER Embedded Studio for ARM
4 。 支持GNU Arm Embedded Toolchain
5 。 核心工具可以自动配置所有这些 IDE、工具链。支持
Nim
6 作为C
的替代。对于新工程,可将
Visual Studio Code
7 配置为代码编辑器。 对于Nim
andGNU Arm Embedded Toolchain
, 编译、下载等任务可以在Visual Studio Code
里启动。平台软件包
为不同应用场景提供不同的软件包(比如
typical
,extension
)。 每个软件包包含完整的协议栈和(可选的)FreeRTOS
可执行二进制文件及对应的C
头文件。 提供访问芯片外设所需的源代码。示例
提供丰富的 BLE 设备示例代码,及对应的 Android、iOS 参考代码。
文档
提供用户手册(本文档),API 参考,应用指南等。
2.2 架构
平台软件包分为两种类型,一种内置 FreeRTOS(称为 RTOS 软件包), 一种不内置 RTOS (称为 “NoOS” 软件包)。
2.2.1 RTOS 软件包
ING918xx/ING916xx 软件架构如图 2.2 所示。 Bootloader 存储于 ROM,不可修改,而平台和应用存储于 Flash。 BLE 协议栈、FreeRTOS 及部分 SoC 功能编译为平台可执行程序。当系统启动时,平台可执行程序首先完成初始化,然后加载主应用。
辅应用以编程方式告知平台运行。可以下载多个辅应用,编程切换。 芯片复位后,平台又会正常加载主应用。主应用的入口地址由 SDK 工具自动管理,辅应用的入口地址由开发者指定。
2.2.1.1 使用 C
语言开发 App
App 的主函数名为 app_main
,app 在这个函数里进行初始化:
int app_main(void)
{
...
return 0;
}
app_main
应该总是返回 0
。
平台,BLE 协议栈和 FreeRTOS 的 API 在相应的 C
头文件里声明,包含头文件就可以使用。
2.2.1.2 使用 Nim
语言开发 App
App 的主函数名为 appMain
,app 在这个函数里进行初始化:
proc appMain*(): int {.exportc noconv.} =
...
return 0;
appMain
应该总是返回 0
。
得益于平台和 app 的划分,app 的体积大大减小。这带来很多好处,不限于:
更小、更简洁的 app 代码
更快的下载和 FOTA
专注于功能开发
SDK 为各 IDE 提供了对应的 Flash 烧写算法。App 调试也很方便:使用 Flash 下载工具(4.2)下载平台二进制文件,然后在 IDE 里正常下载、调试 app。
2.3 缩略语和术语
缩略语 | 解释 |
---|---|
ATT | Attribute Protocol (属性协议) |
BLE | Bluetooth Low Energy (低功耗蓝牙) |
FOTA | Firmware Over-The-Air (固件空中升级) |
IRQ | Interrupt Request (终端请求) |
GAP | Generic Access Profile (通用存取配置) |
GATT | Generic Attribute Profile (通用属性配置) |
RAM | Random Access Memory (随机存取存储器) |
ROM | Read Only Memory (只读存储器) |
SDK | Software Development Kit (软件开发工具包) |
Terminology | Notes |
---|---|
Flash Memory | 一种电子非易失性计算机存储介质 |
FreeRTOS | 一种实行操作系统内核 |