Silicon Labs Connect v3.x 支持在 Micrium OS 内核上运行,只需通过 Simplicity Studio 启用单个组件即可实现。Micrium OS 的引入使 Connect Stack 与应用程序框架运行在独立的任务(Task)中,并通过 IPC(进程间通信)机制进行协作,这也称为 vNCP(Virtual Network Co-Processor,虚拟网络协处理器)架构。对于需要严格任务调度、互斥量或信号量等 RTOS 特性的应用场景,启用 Micrium OS 是推荐的方案。Documentation Index
Fetch the complete documentation index at: https://mintlify.com/dsyx/docs.silabs.com_zh/llms.txt
Use this file to discover all available pages before exploring further.
快速开始
只需在 Project Configurator > SOFTWARE COMPONENTS 中安装 Micrium Stack IPC 组件,即可将任何 Connect 应用程序转换为在 Micrium OS 上运行的应用程序。安装该组件将自动引入 Micrium OS Kernel 组件作为依赖项。有关 Micrium OS 的完整文档,请访问 doc.micrium.com。
Micrium Stack IPC 配置选项
安装 Micrium Stack IPC 组件后,可在 Component Editor 中配置以下选项:| 配置项 | 说明 |
|---|---|
| CPU usage tracking | 启用后,应用框架编译额外代码,使调试工具可获取 OS 扩展调试信息 |
| Connect Task call stack size | Stack 任务使用的调用栈大小(字节) |
| Application Framework Task call stack size | 应用程序框架任务使用的调用栈大小(字节) |
| Max callback queue size | 从 Stack 任务到应用程序任务同时支持的最大回调消息数 |
| Application Task (N)(共 3 个) | 自定义应用程序任务(最多三个),可分别配置调用栈大小和优先级 |
vNCP 双任务架构
启用 Micrium Stack IPC 组件后,系统将运行两个主要任务:Connect Stack Task
优先级:较高(默认为 6)负责:
- 调用
emberTick()API 定期 tick Connect Stack - 处理来自应用程序任务的 IPC 命令并发出响应
- 向应用程序任务发送回调 IPC 命令
- 尽可能挂起自身以让优先级较低的任务运行
Application Framework Task
优先级:较低(默认为 7)负责:
- 定期调用
emberAfTickCallback()和emberAfTick()以 tick 应用程序和 Connect 组件 - 运行应用程序事件
- 处理来自 Stack 任务的回调 IPC 命令
- 尽可能挂起自身以让优先级较低的自定义任务运行
自定义应用程序任务
除了两个主要任务外,开发者还可以启用最多三个自定义应用程序任务,对于每个任务可以指定:- 调用栈大小
- 任务优先级
裸机模式与 Micrium OS 模式对比
- 裸机(Bare Metal)模式
- Micrium OS(RTOS)模式
- 单线程,所有代码在主循环中顺序执行
- Connect Stack 通过
emberTick()在主循环中轮询 - 不支持互斥量、信号量或任务间队列
- 使用 Connect 事件框架(最多 256 个事件)进行延迟/定时任务调度
- 内存占用更小,适合资源极度受限的场景
即使启用了 Micrium OS,Connect 事件框架仍然可用。事件只需在 RAM 中为每个事件分配 6 字节的
EmberEventControl,而 Micrium OS 任务使用大量内存,因此只能创建少量 RTOS 任务。建议将两者结合使用:复杂的并发逻辑使用 RTOS 任务,简单的定时/延迟逻辑使用事件框架。