简介¶
什么是 Nexus?¶
Nexus 是一个世界级的嵌入式软件开发平台,专为构建可靠、安全、可移植的嵌入式应用而设计。它提供了一套完整的抽象层和中间件组件,使开发者能够一次编写代码,部署到多个 MCU 系列。
核心特性¶
统一 API: 跨不同硬件平台的一致接口
可移植性: 一次编写,运行在多个 MCU 系列(STM32、ESP32、nRF52)
高质量: 符合 MISRA C 标准,经过充分测试,覆盖率超过 90%
安全性: 内置 IoT 应用安全特性
实时性: 支持 FreeRTOS 和裸机配置
生态系统: 丰富的中间件、云端集成和工具链
为什么选择 Nexus?¶
对于嵌入式开发者:
使用即用型组件缩短上市时间
专注于应用逻辑而非底层驱动
轻松在 MCU 平台之间迁移
对于团队:
跨项目的一致编码标准
完善的文档和示例
活跃的社区和支持
架构概述¶
Nexus 采用分层架构,将硬件相关代码与应用逻辑分离:
┌─────────────────────────────────────────────────────────────┐
│ Applications │
├─────────────────────────────────────────────────────────────┤
│ Middleware │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Shell │ │ Log │ │ Config │ │ Event │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
├─────────────────────────────────────────────────────────────┤
│ OSAL │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Task │ │ Mutex │ │ Queue │ │ Timer │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
├─────────────────────────────────────────────────────────────┤
│ HAL │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ GPIO │ │ UART │ │ SPI │ │ I2C │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Platform / Hardware │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ STM32F4 │ │ STM32H7 │ │ ESP32 │ │ nRF52 │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────────┘
层级说明¶
- 应用层
基于 Nexus 平台构建的用户应用程序。
- 中间件层
通用服务,包括日志、Shell、配置管理和事件处理。
- OSAL(操作系统抽象层)
RTOS 原语的可移植接口:任务、互斥锁、信号量、队列和定时器。支持 FreeRTOS 和裸机后端。
- HAL(硬件抽象层)
硬件外设的统一 API:GPIO、UART、SPI、I2C、Timer、ADC。对应用代码隐藏硬件差异。
- 平台层
MCU 特定实现,包括启动代码、链接脚本和厂商 SDK 集成。
支持的平台¶
Platform |
MCU |
Status |
RTOS Support |
|---|---|---|---|
STM32F4 |
STM32F407VGT6 |
✅ |
FreeRTOS, Bare |
STM32H7 |
STM32H743ZIT6 |
🚧 |
FreeRTOS, Bare |
ESP32 |
ESP32-WROOM-32 |
🚧 |
FreeRTOS |
nRF52 |
nRF52840 |
🚧 |
FreeRTOS, Zephyr |
Native |
x86/x64 |
✅ |
pthreads |
图例:✅ 已支持,🚧 开发中
项目结构¶
nexus/
├── hal/ # Hardware Abstraction Layer
│ ├── include/ # Public headers
│ └── src/ # Common HAL code
├── osal/ # OS Abstraction Layer
│ ├── include/ # Public headers
│ └── adapters/ # RTOS adapters (FreeRTOS, native)
├── framework/ # Middleware components
│ └── log/ # Logging framework
├── platforms/ # Platform-specific code
│ ├── stm32f4/ # STM32F4 platform
│ └── native/ # Native (PC) platform
├── applications/ # Example applications
├── tests/ # Unit tests
├── docs/ # Documentation
└── cmake/ # CMake modules and toolchains
许可证¶
Nexus 基于 MIT 许可证发布。详情请参阅 LICENSE 文件。
开始使用¶
准备好开始了吗?请按照以下指南操作: