ostaskdel函数_getreal函数

ostaskdel函数_getreal函数INT8U OSTaskCreate(void(*task)(void*pd),void*p_arg,OS_STK*ptos,INT8Uprio);函数返回一个8位的整型数,调用该函数需要四个参数。第一个参数一个指针,也就是用户代码的首地址,在平时使用中我们把自己创建的任务的名字作为这个参数就可以了;第三个参数是指向任务堆栈栈顶的指针,通常我们把创建的任务的堆栈数组的首地址给第…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

INT8U  OSTaskCreate (void (*task)(void *pd), void *p_arg, OS_STK *ptos, INT8U prio)

;函数返回一个8位的整型数,调用该函数需要四个参数。第一个参数一个指针,也就是用户代码的首地址,在平时使用中我们把自己创建的任务的名字作为这个参数就可以了;第三个参数是指向任务堆栈栈顶的指针,通常我们把创建的任务的堆栈数组的首地址给第三个参数就可以了;第四个参数是任务的优先级;第二个参数是什么意思?还不太理解。

    OS_STK    *psp;
    INT8U      err;                                ;创建一个指向数据类型为OS_STK的指针和一个8位的整型数

#if OS_ARG_CHK_EN > 0
    if (prio > OS_LOWEST_PRIO) {             /* Make sure priority is within allowable range           */
        return (OS_PRIO_INVALID);
    }
#endif
;判断该任务的优先级是否有效

   OS_ENTER_CRITICAL();
    if (OSTCBPrioTbl[prio] == (OS_TCB *)0) { /* Make sure task doesn’t already exist at this priority  */
        OSTCBPrioTbl[prio] = (OS_TCB *)1;    /* Reserve the priority to prevent others from doing …  */
                                             /* … the same thing until task is created.              */
        OS_EXIT_CRITICAL();                      ;判断该优先级是否被占用

;优先级未被占用,执行以下程序
        psp = (OS_STK *)OSTaskStkInit(task, p_arg, ptos, 0);     ;初始化堆栈
        err = OS_TCBInit(prio, psp, (OS_STK *)0, 0, 0, (void *)0, 0);   ;初始化任务控制块
        if (err == OS_NO_ERR) {

            OS_ENTER_CRITICAL();
            OSTaskCtr++;                                        /* Increment the #tasks counter        */
            OS_EXIT_CRITICAL();
            if (OSRunning == TRUE) {         /* Find highest priority task if multitasking has started */
                OS_Sched();                          ;此时OSRunning 等于假,也就是在创建任务的时候并不能引发任务调度仅                                                             ;仅是创建任务而已。
            }
        } else {                                         ;该优先级已经被占用,则只把该任务优先级释放掉
            OS_ENTER_CRITICAL();
            OSTCBPrioTbl[prio] = (OS_TCB *)0;/* Make this priority available to others                 */
            OS_EXIT_CRITICAL();
        }
        return (err);

    }
    OS_EXIT_CRITICAL();
    return (OS_PRIO_EXIST);
}
综上所述,创建任务时的主要工作是:第一,判断该优先级是否有效;第二判断该优先级是否被占用,若被占用则释放掉该优先级并返回OS_PRIO_EXIST;第三,若优先级未被占用,就初始化任务堆栈和任务控制块,初始化任务控制块返回正确信息时,将 OSTaskCtr加1;第四,判断OSRunning,为真就引发一次任务调度,为假则程序结束。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196761.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • oracle结果集已耗尽_oracle字符串函数

    oracle结果集已耗尽_oracle字符串函数最近修改oracle触发器,在过程中遇到两个问题:selectlastnamefromhrmresourcewhereidin(waigaunyanshourens);此sql只要功能:根据id到人力资源表找相应的人名;此处waigaunyanshourens是一个存储外观验收人变量;原只是一个存储外观验收人的id变量,现在界面要求外观验收人可以多选,如(41,42,43);现在问题…

    2025年12月4日
    5
  • 2014手机号码归属地数据库

    2014手机号码归属地数据库2014手机号码归属地数据库2014年最新版《手机号码归属地数据库》(更新时间:2014年4月6日),总共1万条记录。数据字段:-号码段(即。号码前7位)-省-市-供应商(含,通信协议)演示样例数据:”1300000″,”北京”,”北京”,”中国联通(GSM)””1…

    2022年7月22日
    17
  • git查看当前分支所属

    git查看当前分支所属

    2021年10月22日
    59
  • pycharm配置环境及安装第三方库_pycharm关联python

    pycharm配置环境及安装第三方库_pycharm关联pythonpycharm配置python环境的方法是:1、依次点击【File】、【ProjectInterpreter】;2、点击【ShowAll】,选择【ExistingEnvironment】;3、选择python的安装路径,点击OK即可。配置方法:1、打开软件,依次点击【File】→【Settings】→【Project】→【ProjectInterpreter】,这样我们就进入了配置Pyth…

    2022年8月29日
    10
  • 关于Eclipse运行java程序时内存溢出

    关于Eclipse运行java程序时内存溢出ECLIPSE运行java程序,系统提示OutOfMemoryError:PermGenspace。解决办法:设置runas—>runconfiguragtions—>jre标签下的属性VMarguments:-server-Xms512m-Xmx1024m-XX:PermSize=512m-XX:MaxPermSize=512m-XX:+CMSC

    2022年7月14日
    21
  • 免费ip代理池创建[通俗易懂]

    免费ip代理池创建[通俗易懂]反爬技术越来越成熟,为了爬取目标数据,必须对爬虫的请求进行伪装,骗过目标系统,目标系统通过判断请求的访问频次或请求参数将疑似爬虫的ip进行封禁,要求进行安全验证,通过python的第三方库faker可以随机生成header伪装请求头,并且减缓爬虫的爬取速度,能很好的避过多数目标系统的反扒机制,但对一些安全等级较高的系统,也有极大的可能ip被封禁,当ip被封禁后,通过更换代理ip便可以继续爬取,所以具有一个有效的ip代理池是非常重要的,网上有很多动态ip代理提供商,但如果能有一个自己免费的ip代…

    2022年6月3日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号