OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » zlgARM,51,Small,RTOS 希望zlgARM 能解答我的关于51

共2条 1/1 1 跳转至

zlgARM,51,Small,RTOS 希望zlgARM 能解答我的关于51 Small RTOS 堆栈的问题~

院士
2006-12-22 22:43:00    评分
zlgARM,51,Small,RTOS 希望zlgARM 能解答我的关于51 Small RTOS 堆栈的问题~



关键词: zlgARM     Small     希望     解答     我的     关于         

院士
2006-12-22 22:43:00    评分
2楼

使用的是small_rtos1.12.1版本,ASM 文件的堆栈处理函数OS_CPU_A_ASM 中

有以下的这一段代码对OSNextTaskID 和 OSTaskID 分情况讨论而进入不同的处

理,而赋值temp = OSTsakStackBotton[OSTaskID] - (uint8 idata *)SP-1;

在这里面的作用是什么??而且其他相关代码所起的作用又是什么??


    cp1 = (uint8 idata *)SP +1;
    temp = (uint8 )OSTsakStackBotton[OSNextTaskID+1];
    cp2 = OSTsakStackBotton[OSTaskID+1];
    if( OSNextTaskID > OSTaskID)
    {
        while(cp2 != (uint8 idata *)temp)
        {
            *cp1++ = *cp2++;
        }
        OSNextTaskID++;
        OSTaskID++;
        temp = OSTsakStackBotton[OSTaskID] - (uint8 idata *)SP-1;
        SP = (uint8 )cp1 - 1;        
        for(i = OSTaskID;i < OSNextTaskID; i++)
        {
            OSTsakStackBotton[i] -= temp;
        }
        OSNextTaskID--;
        OSTaskID = OSNextTaskID;
        LoadCtx();    
    }
1: small_rtos51的堆栈结构类似RTX Tiny,可以结合它的文档看,或参考《嵌入式实时操作系统Small RTOS51原理及应用》

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]