文章分类 - OS
摘要:OS_Sched()分析 在uc/os中总是运行优先级最高的就绪任务,确定哪个任务优先级最高,该由哪个优先级人物运行了,这一工作是由任务调度器完成的,(而具体的任务切换,是任务调度器在调用其他函数来完成)。其中任务级的调度由函数OS_Sched()来完成,中断级的调度由OSIntExt()来完成的。
阅读全文
摘要:基本定义 FIRST(α): 令G是一个不含左递归的文法,对G的所有非终结符的每个候选α定义它的终结首符集FIRST(α)为: FIRST(α)={a | α=>*a…, a∈VT} 若α=>*ε,则规定ε∈FIRST(α) FIRST(α)是α的所有可能推导的开头终结符或可能的ε 如果非终结符A的
阅读全文
摘要:原文链接:http://blog.51cto.com/dong4716138/1087413 OSTaskCreate() 函数原型:INT8U OSTaskCreate(void(*task)(void *pd),void *pdata,OS_STK *ptos,INT8U prio)调用者:任务
阅读全文
摘要:创建任务函数有两个:OSTaskCreate和OSTaskCreateExt。OSTaskCreate有4个参数。OSTaskCreateExt在OSTaskCreate基础上增加了一些功能参数,有9个参数。其中4个参数和OSTaskCreate一样。这里就只讲解OSTaskCreateExt。#i
阅读全文
摘要:1. OSTaskCreate() OSTaskCreate()建立一个新任务,能够在多任务环境启动之前,或者执行任务中建立任务。注意,ISR中禁止建立任务,一个任务必须为无限循环结构。 源码例如以下: #if OS_TASK_CREATE_EN > 0 /* 条件编译,是否同意任务的创建 */IN
阅读全文
摘要:创建任务的函数是系统的基础,系统使用的几乎所有任务都是用这个函数创建的,这不同于linux使用fork函数从权级为0的进程开始创建子进程,基本上是动态的,而μc的任务数据如栈是静态初始化在全局数据段的,在创建的时候与任务关联起来 点击(此处)折叠或打开 /* ********************
阅读全文
摘要:1. OSTaskCreate() OSTaskCreate()建立一个新任务,能够在多任务环境启动之前,或者执行任务中建立任务。注意,ISR中禁止建立任务,一个任务必须为无限循环结构。 源码例如以下: #if OS_TASK_CREATE_EN > 0 /* 条件编译,是否同意任务的创建 */IN
阅读全文
摘要:在uc/os系统中,对于任务的描述和管理是通过任务控制快-OS_TCB来实现的,OS_TCB本质上是一些驻留在在RAM中的结构体。由以下内容构成 对于OS_TCB的管理,uc/os采用了两个链表进行管理,在任务初始化时所有的空闲OS_TCB被连接成单向的空任务链表。另外当任务建立时,空任务控制块指针
阅读全文
摘要:想让µC/OS-Ⅱ管理用户的任务,用户必须要先建立任务。用户可以通过传递任务地址和其它参数到以下两个函数之一来建立任务:OSTaskCreate() 或 OSTaskCreateExt()。OSTaskCreate()与µC/OS是向下兼容的,OSTaskCreateExt()是OSTaskCrea
阅读全文
摘要:函数原型来自OS_TASK.C/*********************************************************************************************************** CREATE A TASK*************
阅读全文
摘要:任务是操作系统处理的首要对象,在多任务运行的环境中,任务的管理需要考虑多方面的因素,最基本的任务管理是任务的创建。任务创建函数有两种,一种是基本的创建函数OSTaskCreate,另一种是扩展的任务创建函数OSTaskCreateExt。两个函数都实现了任务的创建,但是OSTaskCreateExt
阅读全文
摘要:记了几篇笔记后发现,基本就是在抄书,而且由于本人绘图能力有限,也无法贴上图表去说明,可能导致后来的读者完全摸不清头脑,所以再次声明,本人只是在给自己做知识点笔记,相关图标和介绍请阅读书籍《嵌入式实时操作系统us/os-iii》 必须为该任务分配一个任务控制块(OS_TCB)。 static OS_T
阅读全文
摘要:ucos版本:V2.91函数名:OSTaskCreate函数原型位置:os_task.c:206行首先看形参列表及返回值:返回值类型为INT8U,用于保存错误标志。第一个参数为:void (*task)(void *p_arg),此处为一函数指针,用于指定任务执行的函数。第二个参数为:void *p
阅读全文
摘要:1. OSTaskCreate() OSTaskCreate()建立一个新任务,能够在多任务环境启动之前,或者执行任务中建立任务。注意,ISR中禁止建立任务,一个任务必须为无限循环结构。 源码例如以下: #if OS_TASK_CREATE_EN > 0 /* 条件编译,是否同意任务的创建 */IN
阅读全文
摘要:OSTaskCreate()函数原型:INT8U OSTaskCreate(void(*task)(void *pd),void *pdata,OS_STK *ptos,INT8U prio)调用者:任务或者是初始化代码。作用:建立一个新任务,任务的建立可以在多个任务环境启动之前,也可以在正在运行的
阅读全文
摘要:OS_Sched()分析 在uc/os中总是运行优先级最高的就绪任务,确定哪个任务优先级最高,该由哪个优先级人物运行了,这一工作是由任务调度器完成的,(而具体的任务切换,是任务调度器在调用其他函数来完成)。其中任务级的调度由函数OS_Sched()来完成,中断级的调度由OSIntExt()来完成的。
阅读全文
摘要:在uc/os系统中,对于任务的描述和管理是通过任务控制快-OS_TCB来实现的,OS_TCB本质上是一些驻留在在RAM中的结构体。由以下内容构成 对于OS_TCB的管理,uc/os采用了两个链表进行管理,在任务初始化时所有的空闲OS_TCB被连接成单向的空任务链表。另外当任务建立时,空任务控制块指针
阅读全文
摘要:1. OSTaskCreate() OSTaskCreate()建立一个新任务,可以在多任务环境启动之前,或者运行任务中建立任务。注意,ISR中禁止建立任务,一个任务必须为无限循环结构。 源代码如下: #if OS_TASK_CREATE_EN > 0 /* 条件编译,是否允许任务的创建 */INT
阅读全文
摘要:想让uC/OS-Ⅱ管理用户的任务,用户必须要先建立任务。用户可以通过传递任务地址和其它参数到以下两个函数之一来建立任务:OSTaskCreate() 或 OSTaskCreateExt()。OSTaskCreate()与uC/OS是向下兼容的,OSTaskCreateExt()是OSTaskCrea
阅读全文
摘要://系统任务创建 OSTaskCreate 任务创建 查询cortex-M3手册 可以知道为什么寄存器这么配置这么配置 OSTaskStkInit() 任务栈初始化 //单个TCB 初始化 OS_TCBInit() TCB块初始化 任务创建主要做的事情:判断优先级范围是否正常、判断是否有中断嵌套、判
阅读全文