初始化级别宏
2026/4/26大约 2 分钟宏定义初始化系统
初始化级别宏
📚 本节导读
用途: 定义系统多级初始化的各个阶段
来源: kernel/include/os_stddef.h
一、概述
1.1 概念定义
OneOS 使用多级初始化机制,允许组件和驱动在不同阶段进行初始化。每个初始化级别对应系统启动的特定阶段。
1.2 设计原则
按启动顺序分阶段初始化,确保依赖关系正确。
二、初始化级别定义
2.1 完整代码(第 75-91 行)
#define OS_INIT_LEVEL_PRE_KERNEL_1 1 /* The first stage of initialization before the kernel starts */
#define OS_INIT_LEVEL_PRE_KERNEL_2 2 /* The second stage of initialization before the kernel starts */
#define OS_INIT_LEVEL_POST_KERNEL 3 /* The first stage of initialization after the kernel is started */
#define OS_INIT_LEVEL_PRE_DEVICE 4 /* Prev device initialization */
#define OS_INIT_LEVEL_DEVICE 5 /* Device initialization */
#define OS_INIT_LEVEL_COMPONENT 6 /* Components initialization (vfs, lwip, ...) */
#define OS_INIT_LEVEL_APPLICATION 7 /* Appliation initialization */
#ifdef OS_USING_SMP
#define OS_INIT_LEVEL_SMP 8 /* SMP initialization */
#endif
#define OS_INIT_END_FLAG 9 /* End flag, not init level */
#define OS_INIT_SUBLEVEL_HIGH 1
#define OS_INIT_SUBLEVEL_MIDDLE 2
#define OS_INIT_SUBLEVEL_LOW 32.2 级别列表
| 宏名 | 值 | 说明 | 执行时机 |
|---|---|---|---|
OS_INIT_LEVEL_PRE_KERNEL_1 | 1 | 内核启动前第一阶段 | 调度器启动前,板级硬件初始化 |
OS_INIT_LEVEL_PRE_KERNEL_2 | 2 | 内核启动前第二阶段 | 调度器启动前,更多硬件初始化 |
OS_INIT_LEVEL_POST_KERNEL | 3 | 内核启动后第一阶段 | 调度器已启动,内核组件初始化 |
OS_INIT_LEVEL_PRE_DEVICE | 4 | 设备预初始化 | 设备框架准备 |
OS_INIT_LEVEL_DEVICE | 5 | 设备初始化 | 硬件设备驱动初始化 |
OS_INIT_LEVEL_COMPONENT | 6 | 组件初始化 | 文件系统、网络等组件 |
OS_INIT_LEVEL_APPLICATION | 7 | 应用初始化 | 应用层初始化 |
OS_INIT_LEVEL_SMP | 8 | SMP 初始化 | 仅 SMP 系统,多核初始化 |
2.3 子级别
| 宏名 | 值 | 说明 |
|---|---|---|
OS_INIT_SUBLEVEL_HIGH | 1 | 高级别(先执行) |
OS_INIT_SUBLEVEL_MIDDLE | 2 | 中级别 |
OS_INIT_SUBLEVEL_LOW | 3 | 低级别(后执行) |