内核内存映射(Memory Map)

HRTOS采用分层内存布局设计,将系统状态、调度变量、堆栈空间与全局资源分离, 以保证实时性与可预测性。

Kernel Memory Layout

① BIT状态标志区

用于高速控制与调度标志,全部为bit级变量,访问开销极低。

KUAI_PROCESS_A/B:高速任务控制
SCHED_REASON:调度触发来源
ISR_FLAG:中断保护标志
RTOS_MODE:调度模式切换
os_int_status:临界区状态

② DATA / 寄存器保护区

用于中断上下文保存与临时寄存器保护(0x30~0x34)。

OS_INTERRUPT_PROTECT @0x30 OS_R0_PROTECT @0x31 os_sp @0x32 OS_HRTOS @0x33 OS_HRTOS_2 @0x34
该区域在中断进入/退出时快速保存CPU关键寄存器,避免任务上下文污染。

③ STACK堆栈区

三层栈结构:系统栈 / 中断栈 / 用户栈完全隔离。

OS_HRTOS_DUIZHAN_OS (系统栈 System Stack) OS_HRTOS_DUIZHAN_INT (中断栈 Interrupt Stack) OS_HRTOS_DUIZHAN_APP (用户栈 User Stack)
分层堆栈可避免中断与任务栈互相污染,提高系统稳定性。

④ IDATA调度核心区

os_current_task os_prev_task OS_DISPATCH_ID OS_TIME_XY os_critical_nesting
固定地址高速访问区域,用于任务切换、调度触发与时间片控制。

⑤ XDATA全局资源池

OS_PROCESS_OK[] OS_JINCHENG_SP[] OS_KUAI_SP[] OS_TASK_CONTEXT[] OS_FAST_CONTEXT[] OS_MEMORY[] OS_EVENT_BIT OS_TICK_COUNT_L/H
统一管理任务状态、上下文、事件系统与时间系统,是RTOS资源核心区。

⑥ 内核对象池

OS_TASK[OS_PROCESS_MAX] OS_RES[OS_RESOURCE_MAX] OS_MSGQ[OS_MSGQ_MAX]
提供任务 / 资源 / 消息队列统一管理接口,支撑IPC与调度系统。

设计原则

Bit优先:控制路径极致优化
DATA隔离:中断安全上下文
STACK分层:系统稳定性保障
IDATA高速:调度零延迟访问
XDATA统一:资源池化管理
O(1)路径优先:避免复杂搜索结构