OSTaskCreateExt()建立任务

article/2025/11/8 1:36:47
ucosII创建任务的硬性要求
1.任务必须被创建在多任务启动前运行的任务
2.任务不能在ISR(中断)中创建
3.任务必须在死循环中,且不能有返回
OSTaskCreateExt()建立任务

NT8U OSTaskCreateExt (void   (*task)(void *pd),

                       void    *pdata,

                       OS_STK *ptos,

                       INT8U    prio,

                       INT16U   id,

                       OS_STK *pbos,

                       INT32U   stk_size,

                       void    *pext,

                       INT16U   opt)

所属文件:OS_TASK.C 调用者:任务或者是启动代码,但是不可以在中断中调用。
此函数建立一个新文件,是OSTaskCreate()的升级版。
参数:
task 指向任务代码的指针。
pdata 指向一个类型可以选择的数据区,很多时候是(void *)0.
ptos   指向任务堆栈栈顶的指针。任务堆栈用于保存局部变量、函数参数、返回地址及中断时cpu寄存器的状 态。如果初始化常量OS_STK_GROWTH设为1(在os_cpu.h中定义),将堆栈设为Stack grows from HIGH to LOW memory on ARM ,此时ptos应该指向任务堆栈空间的最高地址。
prio 任务的优先级。数字越小,优先级越高。
id    任务的标识,可以设置同优先级。
pbos 指向堆栈低端的指针。
stk_size 指定任务堆栈的大小。
pext 定义数据结构的指针,很多时候是(void *)0.
opt    存放与任务相关的操作信息。如OS_TASK_OPT_CHK 允许进行任务堆栈检查等。可以参考uCOS_H.H
范例:本例中创立的任务将运行在堆栈向高地址递增的处理器上,如MCS-51,此时,OS_STK_GROWTH设为0;本例中,允许堆栈检查操作,程序可以调用OSTaskStkChk()函数。

OS_STK *TaskStk[1024];

void main(void)
{
     INT8U err;

     OSInit(); /*初始化ucos*/
    
     err = OSTaskCreateExt(Task,
              (void *) 0,
              &TaskStk[0], /*堆栈向高地址增长*/
                10,
                10,
               &TaskStk[1023],
                1024,
               (void *) 0,
                 OS_TASK_OPT_CHK;)/*允许堆栈检查*/
    
     OSStart();

}

void Task(void *pdata)
{
       pdata = pdata;
      for(;;){
    …… /*任务代码*/
      }
}

堆栈向低地址增长:

 

关于堆栈的递增和递减问题,会影响到代码的可移植性,可以这样书写,以适应不同的处理器:

OS_STK *TaskStack[TASK_STACK_SIZE];

#if OS_STK_GROWTH == 0
     OSTaskCreate(task,pdata,&TaskStack[0],prio);
#else
     OSTaskCreate(task,pdata,&TaskStack[TASK_STACK_SIZE-1],prio);
#endif


http://chatgpt.dhexx.cn/article/d69EDF52.shtml

相关文章

赢在微点答案专区英语_英语u校园读写2答案unit3,u校园新标准大学英语视听说3单元测试答案搜题公众号...

英语u校园读写2答案unit3,u校园新标准大学英语视听说3单元测试答案搜题公众号,u校园大学英语读写4第一单元答案查题APP更多相关问题A.婴儿期 B.幼儿期 C.学龄前期 D.学龄期 E.青春期关于自我,正确的说法是(…

新视野大学英语视听说第三版答案

Unit 1 Unit 2 Unit 3 Unit 4 Unit 5 Unit 6 Unit 7 Unit 8

视听说教程(第三版)4 quiz 1

视听说教程(第三版)4 quiz 1 Reading Comprehension Section A Passage One Questions 1 to 5 are based on the following passage. We all want to raise kids who are happy and successful, but we often mistakenly think that money is the key …

welearn 视听说1-4

词汇题(55道) 1. You should carefully think over_____ the manager said at the meeting. A. that B. which C. what D. whose 1.选C,考察宾语从句连接词,主句谓语动词think over后面缺宾语,后面的宾语从句谓语动…

使用RemObjects Pascal Script

摘自RemObjects Wiki 本文提供RemObjects Pascal Script的整体概要并演示如何创建一些简单的脚本. Pascal Script包括两个不同部分: 编译器 (uPSCompiler.pas)运行时 (uPSRuntime.pas) 两部分彼此独立.可以分开使用,或通过TPSScript 控件使用他们,这个控件定义在uPSComponent.p…

搭建一个简单的Pascal脚本开发环境

使用innosetup进行打包,涉及到需要编写一些Pascal脚本,所以了解了下Pascal的相关语法。 这里主要介绍如何搭建一个简单的Pascal开发环境。 一、Free Pascal Free Pascal(全称 FPK Pascal)是一个32位和64位专业Pascal编译器。它…

pascal编程语言介绍

Pascal是一种过程式编程语言,由Niklaus Wirth于1968年设计并于1970年发布,并以法国数学家和哲学家Blaise Pascal的名字命名。Pascal可以运行在多种平台上,例如Windows、Mac OS和各种版本的UNIX/Linux。[3] 软件名称 Pascal 软件平台 Windows、…

Free Pascal IDE安装

1. Free Pascal IDE 安装 首先,去 https://www.freepascal.org/download.var 下载Free Pascal IDE。我选择的sourceforge镜像 fpc-3.0.2.i386-win32.exe,下载比较慢,请耐心等待。下载完成后,双击exe文件进行安装&#xf…

[pascal入门]数组

一、本节目标 本节我们将要讲述数组。本节目标: 一维数组二维数组字符数组 二、一维数组 我们通过一个案例来简单的理解数组。班主任要计算班级里面50个同学数学成绩的平均成绩,道理上讲这是一个比较简单的问题,只需要把每个人的成绩加起来除…

linux的pascal语言,pascal语言视频教程 Linux GCC常用命令详解

GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言&#xff0…

vscode 配置 pascal环境

vscode 配置 pascal环境 网上关于配置pascal的教程不太多,我试验了好几个,都没搞对,其中有很多原因吧,最后从较多、较熟悉的c环境开始配置理解,才算是慢慢懂得了这个配置过程,前前后后大概花一个星期&…

信息学竞赛 c语言 pascal,pascal信息学竞赛教程

第一讲: 信息学竞赛讲座:预备知识 计算机语言是计算机软件中非常独特的一部份,它属于系统软件,但又和应用软件息息相关。它的作用是:使人类能够用某些命令、指令去让计算机为人类进行数值、逻辑运算。计算机语言中,只有一种语言是…

Pascal基础教程

第一课 初识Pascal语言 信息学奥林匹克竞赛是一项益智性的竞赛活动,核心是考查选手的智力和使用计算机解题的能力。选手首先应针对竞赛中题目的要求构建数学模型,进而构造出计算机可以接受的算法,之后要写出高级语言程序,上机调试…

【通用学术英语视听说答案】

通用学术英语视听说答案–主编郎曼、侯霞

英语视听说第六版答案

Unit 1 Unit 2 Unit 3 Unit 4 Unit 5 Unit 6 Unit 7 Unit 8

welearn平台答案 大学英语 视听说 综合教程

打开页面 f12 ctrlshiftc 鼠标移动到选项位置 带data-solution的就是答案

u校园新视野英语 视听说 读写

一、软件介绍 主要由浏览器插件的形式实现辅助看课 完全模拟人工操作,自动答题,刷时长 二、软件下载 https://www.lanzous.com/b01hihtxg 打包好的脚本浏览器,打开即用,无需配置 三、主要功能 进入课程后自动寻找未完成的任…

视听说教程(第三版)4 quiz 2

视听说教程(第三版)4 quiz 2 //中文注解都是亲自查阅并打上去的,既是为了完善自己的词库,同时也有助于小伙伴们的阅读与理解 //您的支持是我更新的不竭动力! //希望点个赞或者投个币,支持一下吧&#xff0…

U校园视听说读写答题时长分享教程

脚本介绍: U校园题库,U校园题答案,U校园新视野答案,U校园刷时长 一、主要功能: 自动填入答案、支持作业与测试、支持视听说单元测试、支持期末考试。已测试可用,有需要的可下载好自行测试。 二、实现原…

新概念外语视听说检测离开破解

作为苦逼的大学生,一般都有视听说要做(其实就是挂时长,每单元45分钟),但视听说网页会检测你是不是离开了,也就是挂机,如果5分钟你不对页面进行操作,页面就会自动弹出一个提醒窗口&am…