2 简介

Figure 2.1: SDK Overview
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、工具链。平台软件包
为不同应用场景提供不同的软件包(比如
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 功能编译为平台可执行程序。当系统启动时,平台可执行程序首先完成初始化,然后加载主应用。

Figure 2.2: Architecture
辅应用以编程方式告知平台运行。可以下载多个辅应用,编程切换。 芯片复位后,平台又会正常加载主应用。主应用的入口地址由 SDK 工具自动管理,辅应用的入口地址由开发者指定。
2.2.1.1 使用 C
语言开发 App
App 的主函数名为 app_main
,app 在这个函数里进行初始化:
int app_main(void)
{
...
return 0;
}
通常情况下,app_main
返回 0
。如果开发者想要使用自定义的 RTOS 来替代内置的 RTOS,
也可以通过 app_main
的返回值向平台传递一个通用 RTOS 接口的实现,
方式与使用 “NoOS” 软件包 相同。6
平台,BLE 协议栈和 FreeRTOS 的 API 在相应的 C
头文件里声明,包含头文件就可以使用。
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 | 一种实行操作系统内核 |
https://www.segger.com/products/development-tools/embedded-studio/↩︎
https://developer.arm.com/open-source/gnu-toolchain/gnu-rm↩︎
从 SDK v8.5.0 版本开始支持。对于更早的版本,
app_main
必须始终返回0
。↩︎SDK 示例:Smart Home Hub。↩︎
SDK 示例:Central FOTA。↩︎
https://www.freertos.org/Documentation/161204_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf↩︎