os_data_to_xdata

所属模块:底层内存管理 | 类型:XDATA写入函数

API Metadata

函数ID:os_data_to_xdata
模块:memory
类型:data transfer / xdata write
嵌套深度:1

函数简介

os_data_to_xdata 用于将内部数据搬运到8051的XDATA外部存储空间。

该接口通过寄存器间接寻址方式实现数据写入,是HRTOS底层上下文保存与任务迁移的重要基础函数。

常用于任务上下文切换、堆栈保存以及高速任务数据迁移过程。

函数原型

void os_data_to_xdata(u8 addr, u16 addr2);

参数说明

参数 说明
addr 源数据地址(内部寄存器/数据区索引)
addr2 XDATA目标地址(外部存储空间地址)

返回值

无返回值。

源码实现

void os_data_to_xdata(u8 addr, u16 addr2) { u8 i; i = IE; EA = 0; OS_HRTOS = addr; __asm mov R1, OS_HRTOS OS_HRTOS = addr2 & 0xff; DPH = addr2 >> 8; DPL = OS_HRTOS; __asm MOV A, @R1 __asm MOVX @DPTR, A IE = i; }

使用示例

void demo_xdata_write() { os_data_to_xdata(5, 0x1200); }

注意事项

该函数涉及中断关闭与寄存器操作,执行期间不可被打断,否则可能导致数据写入错误。 仅用于内核级数据搬运,不建议在应用层频繁调用。

相关推荐