51内核多线程,os任务调度


//https://cloud.tencent.com/developer/article/1692860
    //#include "reg52.h"
#define data   //c51栈要放在dataq区~data/idada/pdata/xdata      
#define  MAX_TASKS     10
#define  OS_TASK_NUM   8
#define    OS_TASK_STACK_SIZE        (2+13+2*3)//存放断点2B,中断函数可能压栈13B,子程序每嵌套一层2B


typedef    struct
{
        unsigned char  delay;//当前延时剩余时间
        unsigned char        stack[OS_TASK_STACK_SIZE]; //私有堆栈
        unsigned char  sp;//私有堆栈指针
}OS_TASK;//任务工作块。


 data       OS_TASK       os_task[OS_TASK_NUM];//必须定义为data(因堆栈只能在data区)

OS_TASK task_sp[MAX_TASKS];
//     void os_switch()
//{  
//    task_sp[task_id] = SP;  
//    if(++task_id == MAX_TASKS)  
//        task_id = 0;   
//    SP = task_sp[task_id];
//}

/*
 *    任务调度,转向当前延时时间到且优先级最高(id较小)

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值