ESOS(Energy Service OS) 是由进迭时空科技有限公司开发的能效及实时管理系统,为系统提供辅助管理功能
包括如下硬件特性:
| 硬件 | 描述 |
|---|---|
| 芯片型号 | k1 |
| CPU | N308 |
| 主频 | 245Mhz |
| DDR | 共享AP DDR |
| SRAM | 256KB |
K3 芯片集成了两个 RT24 RISC-V 小核(os0_rcpu 和 os1_rcpu),分别运行独立的 ESOS 实例,负责系统能效及实时任务管理。
| 硬件 | 描述 |
|---|---|
| 芯片型号 | k3 |
| CPU | RT24 (RISC-V) |
| 主频 | 614.4MHz |
| RAM | 5MB(每个核独立) |
| 实例数 | 2(os0_rcpu / os1_rcpu) |
支持的板型:evb、evb2_1、evb2_2、com260、com260_ifx、com260_kit_v02、deb1、gemini_c0、gemini_c1、pico-itx、dc_board、BS01DCMA
| 环境 | 说明 |
|---|---|
| PC操作系统 | Linux |
| 编译器 | riscv-nuclei-elf-gcc version 10.2.0 |
| 构建工具 | scons |
- 下载源码
随SDK一起发布
- 配置工程并准备env
cd esos
./build.sh config
INFO: prepare to config sdk ...
All valid soc chips:
0: n308
Please select a chip:0
All valid boards:
0: k1-x
Please select a board:0
- 编译
./build.sh
- 清除编译临时文件
./build.sh clean
- 配置
cd bsp/spacemit/
scons --meuconfig
如果编译正确无误,会产生rtthread.bin、rtthread-n308.elf文件。其中rtthread-n308.elf需要copy到主系统的ramfs中供linux加载并启动运行。
| 环境 | 说明 |
|---|---|
| PC操作系统 | Linux |
| 编译器 | riscv64-unknown-elf-gcc version 14.2.1 (spacemit-toolchain-elf-newlib-x86_64-v1.0.9) |
| 构建工具 | buildroot / scons / deb |
在 Bianbu 系统中,esos 以 deb 包形式分发,可直接从源码构建并安装。
- 下载源码
git clone https://github.com/spacemit-com/esos.git
cd esos/components
git clone https://github.com/spacemit-com/esos-lite.git
git checkout -b k3-release remotes/origin/k3-release
cd esos
git checkout -b k3-release remotes/origin/k3-release
- 安装编译依赖
apt-get build-dep .
- 构建 deb 包
dpkg-buildpackage -uc -us -b
- 安装
dpkg -i ../bianbu-esos_*.deb
ESOS 作为 buildroot 的一个 package 进行编译
- 编译(默认编译 rt24 all core)
# 在 buildroot-k3 根目录下执行
make esos
- 清理
make esos-dirclean
- 重新编译
# 注意:不是 make esos-rebuild
make esos-reconfigure
esos 的修改或 menuconfig 配置需要进入 esos 源码目录,并选择要修改的 core:
$ cd buildroot-k3/package-src/esos
$ ./build.sh config # 选择要配置 core0 或 core1
INFO: prepare to config esos sdk ...
All valid soc chips:
0: n308
1: rt24
Please select a chip:1
All valid boards:
0: os0_rcpu
1: os1_rcpu
Please select a board:0
INFO: target configuration is as follows:
INFO: -------------------------------------------------------------------------
export TARGET_CHIP=rt24
export TARGET_BOARD=os0_rcpu
export TARGET_DEFCONFIG=rt24_os0_rcpu_defconfig
export TARGET_ENTRY_POINT=0x100200000
INFO: -------------------------------------------------------------------------
INFO: prepare to toolchain ...
选完 core 后可以用 menuconfig 进行图形化配置,配置结果保存在
bsp/spacemit/platform/rt24/osX_rcpu/rt24_osX_rcpu_defconfig:
./build.sh menuconfig
修改完成后,运行以下指令可生成该 core 的 .elf 文件:
./build.sh
注意:如果要生成最终的
esos.itb镜像,不要直接运行./build.sh itb, 需要回到 buildroot 根目录重新编译 esos 才能生效(修改 esos 代码同理)。 生成的esos.itb镜像位于./output/k3/images/目录下:$ cd buildroot-k3 $ make esos-reconfigure
如果编译 & 烧写无误,会在RUART0上看到RT-Thread的启动logo信息:
\ | /
- RT - Thread Operating System
/ | \ 4.0.4 build Oct 22 2025 14:57:47
2006 - 2021 Copyright by rt-thread team
| 驱动 | 支持情况 | 备注 |
|---|---|---|
| uart | 支持 | uart0-1 |
| gpio | 支持 | / |
| pinctrl | 支持 | / |
| clk | 支持 | / |
| i2c | 支持 | i2c0 |
| spi | 支持 | spi0 |
| mailbox | 支持 | / |
| remoteproc | 支持 | / |
| pwm | 支持 | pwm0~9 |
| dma | 支持 | / |
| mmu | 不支持 | / |
| adma | 半支持 | 仅支持中断投送功能 |
| can | 半支持 | 仅支持中断投送功能 |
| ir | 半支持 | 仅支持中断投送功能 |
| 驱动 | os0_rcpu | os1_rcpu | 备注 |
|---|---|---|---|
| uart | 支持 | 支持 | / |
| gpio | 支持 | 支持 | / |
| pinctrl | 支持 | 支持 | / |
| i2c | 支持 | 支持 | / |
| spi | 支持 | 支持 | / |
| mailbox | 支持 | 支持 | / |
| dma | 支持 | 支持 | / |
| adma | 不支持 | 支持 | / |
| pm | 支持 | 支持 | / |
| regulator | 支持 | 支持 | / |
| clk | 支持 | 支持 | / |
| pwm | 支持 | 支持 | / |
| can | 支持 | 支持 | / |
| remoteproc | 支持 | 支持 | / |
维护人: [zhuxianbin][4] < [xianbin.zhu@spacemit.com][5] >