当前位置: 首页 > news >正文

宁波英文网站建设广东中山市做网站

宁波英文网站建设,广东中山市做网站,js网页特效案例,泗阳城乡建设局网站目录 内核:多任务(ucos_ii.h文件的函数)Task创建Task创建(扩展)Task删除/请求删除Task改变Task优先级Task挂起和恢复Task信息获取Task调度器上锁和开锁 内核:调度(oc_core.c文件的函数&#xff…

目录

  • 内核:多任务(ucos_ii.h文件的函数)
    • Task创建
    • Task创建(扩展)
    • Task删除/请求删除Task
    • 改变Task优先级
    • Task挂起和恢复
    • Task信息获取
    • Task调度器上锁和开锁
  • 内核:调度(oc_core.c文件的函数)
    • OS_TCB(任务控制块)初始化
    • 任务控制块列表(ucos_ii.h文件的函数)
    • 系统调用,主动让渡CPU
    • 发生中断,强制当前任务让渡CPU
    • 就绪表(ucos_ii.h文件的函数)
      • 设置任务进入就绪态
      • 设置任务脱离就绪态
      • 在就绪表中找到优先级最高(数最小)的任务

在这里插入图片描述

内核:多任务(ucos_ii.h文件的函数)

Task创建

#if OS_TASK_CREATE_EN > 0u
INT8U    OSTaskCreate    (void           (*task) (void *p_arg),void            *p_arg,OS_STK          *ptos,INT8U            prio);
#endif

Task创建(扩展)

#if OS_TASK_CREATE_EXT_EN > 0u
INT8U    OSTaskCreateExt  (void           (*task) (void *p_arg),void            *p_arg, OS_STK          *ptos, INT8U            prio, INT16U           id, OS_STK          *pbos, INT32U           stk_size, void            *pext,INT16U           opt);
#endif

Task删除/请求删除Task

#if OS_TASK_DEL_EN > 0u
INT8U         OSTaskDel               (INT8U            prio);
INT8U         OSTaskDelReq            (INT8U            prio);
#endif

改变Task优先级

#if OS_TASK_CHANGE_PRIO_EN > 0u
INT8U         OSTaskChangePrio        (INT8U     oldprio,	 INT8U      newprio);
#endif

Task挂起和恢复

#if OS_TASK_SUSPEND_EN > 0u
INT8U         OSTaskResume            (INT8U            prio);
INT8U         OSTaskSuspend           (INT8U            prio);
#endif

Task信息获取

#if OS_TASK_QUERY_EN > 0u
INT8U         OSTaskQuery             (INT8U            prio,OS_TCB          *p_task_data);
#endif

Task调度器上锁和开锁

#if OS_SCHED_LOCK_EN > 0u
void          OSSchedLock             (void);
void          OSSchedUnlock           (void);
#endif

内核:调度(oc_core.c文件的函数)

OS_TCB(任务控制块)初始化

INT8U   OS_TCBInit    (INT8U            prio,OS_STK          *ptos,OS_STK          *pbos,INT16U           id,INT32U           stk_size,void            *pext,INT16U           opt);

任务控制块列表(ucos_ii.h文件的函数)

OS_EXT  OS_TCB            OSTCBTbl[OS_MAX_TASKS + OS_N_SYS_TASKS];

系统调用,主动让渡CPU

void  OS_Sched (void)
{#if OS_CRITICAL_METHOD == 3u                           /* Allocate storage for CPU status register     */OS_CPU_SR  cpu_sr = 0u;#endifOS_ENTER_CRITICAL();if (OSIntNesting == 0u)                            /* Schedule only if all ISRs done and ...       */{if (OSLockNesting == 0u)                       /* ... scheduler is not locked                  */{OS_SchedNew();OSTCBHighRdy = OSTCBPrioTbl[OSPrioHighRdy];if (OSPrioHighRdy != OSPrioCur)            /* No Ctx Sw if current task is highest rdy     */{#if OS_TASK_PROFILE_EN > 0uOSTCBHighRdy->OSTCBCtxSwCtr++;         /* Inc. # of context switches to this task      */#endifOSCtxSwCtr++;                          /* Increment context switch counter             */OS_TASK_SW();                          /* Perform a context switch                     */}}}OS_EXIT_CRITICAL();
}

发生中断,强制当前任务让渡CPU

void  OSIntExit (void)
{#if OS_CRITICAL_METHOD == 3u                               /* Allocate storage for CPU status register */OS_CPU_SR  cpu_sr = 0u;#endifif (OSRunning == OS_TRUE){OS_ENTER_CRITICAL();if (OSIntNesting > 0u)                             /* Prevent OSIntNesting from wrapping       */{OSIntNesting--;}if (OSIntNesting == 0u)                            /* Reschedule only if all ISRs complete ... */{if (OSLockNesting == 0u)                       /* ... and not locked.                      */{OS_SchedNew();OSTCBHighRdy = OSTCBPrioTbl[OSPrioHighRdy];if (OSPrioHighRdy != OSPrioCur)            /* No Ctx Sw if current task is highest rdy */{#if OS_TASK_PROFILE_EN > 0uOSTCBHighRdy->OSTCBCtxSwCtr++;         /* Inc. # of context switches to this task  */#endifOSCtxSwCtr++;                          /* Keep track of the number of ctx switches */OSIntCtxSw();                          /* Perform interrupt level ctx switch       */}}}OS_EXIT_CRITICAL();}
}

就绪表(ucos_ii.h文件的函数)

OS_EXT  OS_PRIO           OSRdyTbl[OS_RDY_TBL_SIZE];       /* Table of tasks which are ready to run    */

设置任务进入就绪态

设置任务脱离就绪态

在就绪表中找到优先级最高(数最小)的任务

http://www.yayakq.cn/news/278796/

相关文章:

  • 制作网站页面怎么做软件定制一般多少钱
  • 上海网站制作公司联系方式河南郑州最新情况
  • 房地产网站推荐企业网站备案不通过
  • 企业网站全屏轮播怎么做ip在线代理网页
  • 公司内部网站怎么做网站备案人授权
  • 创建网址快捷方式济南百度seo
  • wordpress账号无法创建网络优化网站 s
  • 网站源码 com大全wordpress删除全部评论
  • 响应式网站生成iis7搭建网站
  • CMCAP官方网站邯郸移动网站建设费用
  • 厦门公司网站制作流程wordpress商务套餐
  • 合肥建设工会网站自己怎么做点击量好的网站
  • 怎么防止网站被注册机手机网页禁止访问解除
  • 手机网站可以做百度商桥吗广州天河区网站设计公司
  • 网站建设公司工资设置wordpress导出app
  • 上哪儿找做网站网站本地环境搭建
  • 网站开发中可能遇到的技术问题自己做的网站怎么设置信息必填
  • 河南省省建设厅网站西安微信小程序制作公司
  • 产品展示网站含后台网站模板下载通过网站建设提高企业的
  • 建设微网站合肥seo优化外包公司
  • 学网站开发wordpress 模板分页
  • 郑州做网站找赢博科技嵌入式开发工程师需要学什么
  • 郑州网站制作培训学校苏州网站搭建公司
  • 现在建设公司网站用什么软件沈阳三好街做网站公司
  • 互联网创意网站有哪些方面frontpage网页制作视频教程
  • 做网站空间哪家好文创产品设计作品欣赏
  • 大连住建部官方网站建设银行网站开通查询密码
  • 东营网站搜索引擎优化国产卡一卡二卡三无线乱码新区
  • wordpress屏蔽功能org杭州明开seo
  • 教育培训网站案例网站推广优化网址