OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 12686|回复: 42

ALIENTEK MiniSTM32 下 ucos应用笔记之一——任务的建立MyFistTask

[复制链接]

7

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
389
金钱
389
注册时间
2012-3-4
在线时间
69 小时
发表于 2012-4-21 00:19:31 | 显示全部楼层 |阅读模式
 

ALIENTEK MiniSTM32 ucos应用笔记之一 fficeffice" />

——任务的建立MyFistTask

 

 

本贴借用原子的ALIENTEK MiniSTM32平台针对扩展实验8stm32ucos任务的建立做以简单的介绍。对于大多数欲玩转ucos却一直遥遥观望无从入手的朋友这篇文章或许会带你入门(确切的说是让你找准大门的方向,入门且谈不上),对于已经熟悉ucos的朋友请绕行,无需花费您宝贵的时间看菜鸟级的闲谈。废话不多说,下面直入主题。

 

一、 平台配置:

这里借用原子哥的工程模板,打开扩展实验8 uCOSII控制DS0 DS1亮灭,左侧的工作空间如图所示


图中USERSYSTEMHARDWAER这三个文件夹相信大家都相当熟悉不必介绍。 uC/OS-II CODEuC/OS-II PORTuC/OS-II CONFIGS三个文件夹是操作系统内核本身相关代码研究其源码之前可以不去理会它。

 

二、test.c文件介绍

扩展实验8中任务函数跟主函数在同一个文件test.c中编写,下面对主程序进行介绍,打开tesk.c 文件,文件开头包含如下头文件


   前面5个头文件不在敷述,最后一个头文件includes.h本身包含了操作系统本身相关的所有头文件,在这里一次性包含进工程里。接下来定义了任务相关写数据结构,对一些函数做了声明

对于某个已经编写的任务建立之前我们要做三件事:

1 、定义任务堆栈

2 、定义任务优先级

3、创建任务

例程中的代码如下:

任务堆栈定义定义部分:

//设置任务堆栈大小

#define LED_STK_SIZE     64

#define LED1_STK_SIZE    64

#define START_STK_SIZE   128

 

任务优先级定义部分:

//任务堆栈

OS_STK  TASK_LED1_STK[LED_STK_SIZE];

OS_STK  TASK_LED_STK[LED_STK_SIZE];

OS_STK  TASK_START_STK[START_STK_SIZE];

任务堆栈:就是任务运行时所占内存(ram)的空间,根据实际情况我们可以自己设置其大小(注意宁可多分配,不要设置太小,不然堆栈溢出会产生难以预料的后果);这里是通过定义数组对其进行分配的,空间大小通过宏定义来完成便于修改。

注意:此处定义了三个堆栈空间,分别对应着三个不同的任务TaskLed1TaskLedTaskStart

 

对于任务的创建在后面就行讲解。

主程序结构说明:

int  main (void)  // 主函数

{

///////////////////////////////////////初始化/////////////////////////////////////////////

Stm32_Clock_Init(9); //系统时钟设置

//  delay_init(72);          //延时初始化

    uart_init(72,9600);     //串口初始化为9600

    LED_Init();               //初始化与LED连接的硬件接口

SysTick_Configuration();系统时钟初始化设置

/////////////////////////////////////////操作系统部分//////////////////////////////////////////////////

    OSInit();//操作系统初始话

    OSTaskCreate( TaskStart, //任务代码地址

                                (void *)0,     //任务参数

                          (OS_STK*)&TASK_START_STK[START_STK_SIZE-1],

                     //任务堆栈栈顶

   START_TASK_Prio//任务优先级

 );    

   

    OSStart();//启动操作系统,开始任务调度

    return 0;   

}

主程序大体分为两部分的内容:硬件初始化部分、操作系统相关部分。

初始话部分主要对相关硬件进行配置、操作系统部分主要做了三件事:第一系统初始化OSInit、第二任务创建OSTaskCreate、第三系统启动OSStart

这里有必要对任务的创建进行简单的说明,我们通过右击光标gotoOSTaskCreate的定义处,函数原型为

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

一共包含4个参数分别是三个指针型和一个无符号整型。它们分别代表着任务代码地址(任务函数的名称),任务参数(传递给任务函数的参数),任务堆栈栈顶(任务堆栈数组)和任务优先级。

任务函数结构说明:

对于任务函数的编写多数情况下采用如下周期性循环的格式

void  MyTask (void *pdata)          //周期性执行的任务函数

{

相关初始化部分

while(1)     //无限循环

 {

   任务功能代码部分;

   调用系统延时函数;   // OSTimeDlyHMSM( ) 或者OSTimeDly( )

  }

}

任务函数包括三部分内容:1相关初始化部分 进行任务相关的变量的定义、初始话和相关硬件的初始话;

2  任务功能代码部分:完成任务的具体功能

3  调用系统延时函数:周期性的执行任务,延时开始时挂起自己释放cup让其他就绪任务执行,延时结束后回到就绪态运行(注意这里延时结束后不是任务不是直接运行的,还有个优先级的问题,如果多个任务共同处于就绪态的时候优先级高的先运行)。

 

三、任务的建立:

上面的啰嗦主要是为任务的建立做个铺垫,在上述的讲述的基础上,下面进行任务建立:

创建一个任务需要以下几个步骤:

1 定义任务堆栈

2、定义任务优先级

3 编写任务函数

4 创建任务(在主函数中或者其它任务中创建任务)

前三个步骤以任务1为例进行说明,其余两个任务的操作与此类似。

第一定义任务堆栈

   分为2小步:

1、设置任务堆栈大小:   #define LED_STK_SIZE     64

    2、定义堆栈数组:   OS_STK  TASK_LED_STK[LED_STK_SIZE];

    这里注意OS_STK 我们可以右键goto到定义出typedef unsigned int   OS_STK,可见其等价于unsigned int

第二 定义任务优先级

    #define LED_TASK_Prio       11 

这里定义任务的优先级为11,注意ucos最多可以运行64个任务最低任务优先级数为0,系统任务自身占用2个优先级(优先级数6362统计和空闲任务占用)因此我们设置优先级数时应该不大于62Ucos中还可对最多任务数量上限进行设置在os_cfg.h里面有一个: #define OS_MAX_TASKS     11   这里原子的默认设置为11,所以此时我们最多能够创建的任务数为11个。还有一处#define  OS_LOWEST_PRIO    12,这里设置任务最低优先级为12  所以在这里我们在设置任务优先级的时候不可大于10(最后两个优先级被统计和空闲任务所占据)。因此如果创建的任务多于11个时适当修改OS_MAX_TASKS OS_LOWEST_PRIO的值即可。

第三 编写任务函数

原子的代码中共编写了3个任务函数,分别是TaskStartTaskLed TaskLed1

    //任务1

//控制DS0的亮灭.

void TaskLed(void *pdata)

{

       while(1)

       {      

             LED0=!LED0;

           OSTimeDlyHMSM(0,0,0,500);     

       }

}

   说明:函数无返回值,参数为任意指针型变量此处无参数传递因此在OSTaskCreate中赋值为(void * )0

    这里OSTimeDlyHMSM为任务延时函数5个参数分别对应着时、分、秒、毫秒。

While循环中先执行一次LED0=!LED0然后隔释放cup挂起自己,每隔500ms,反复一次。(个人觉得这种模式很像普通的定时器中断,

OSTimeDlyHMSM(0,0,0,500)相当于给计数器赋初值,简单的可以这样理解实际上任务的调度过程是比较复杂的)

任务2函数TaskLed1的编写跟TaskLed类似

TaskStart任务的编写在后面介绍。

第四  创建任务

   原子的例程中TaskStart任务的创建在main函数中完成,其它两个任务的创建在TaskStart中完成,代码如下:

TaskStart的创建:

  OSTaskCreate( TaskStart,  //task pointer

                                   (void *)0,     //parameter

                                   (OS_STK *)&TASK_START_STK[START_STK_SIZE-1],                               //task stack top pointer

                                   START_TASK_Prio
                             );      //task priority

   TaskLed TaskLed1的创建:

void TaskStart(void * pdata)

{

      pdata = pdata; //1

      OS_ENTER_CRITICAL(); //2

      OSTaskCreate(TaskLed,(void*)0, (OS_STK *)&TASK_LED_STK[LED_STK_SIZE-1], LED_TASK_Prio);//3

      OSTaskCreate(TaskLed1,(void*)0,(OS_STK*)&TASK_LED1_STK[LED1_STK_SIZE-1], LED1_TASK_Prio);//4

      OSTaskSuspend(START_TASK_Prio); // 5

      OS_EXIT_CRITICAL();//6

}

程序中34处分别创建两个任务,任务1 TaskLed和任务2 TaskLed1

程序1处将pdata = pdata是将参数传递给自己这样做的目的是防止编译器报错,其他两个任务中原子省略了这句。

程序2处进入临界区关中断禁止任务切换,防止其他任务同时调用OSTaskCreate函数而产生不可预料的后果;

程序5 通过调用OSTaskSuspend函数TaskStar任务挂起自己,后面系统不再执行TaskStart任务

程序6 退出临界区开中断,允许任务切换。


四、总结
    
至此所有的任务创建工作已经完成,回头看看似乎讲的很散乱,下面做个简单的总结:创建一个新的任务步骤如下1、为其定义任务堆栈,2设置其优先级3、按照上述格式编写任务函数代码4、调用OSTaskCreate函数创建任务(可在main或者其他任务函数中完成)

上述实例中任务的执行流程如下:main函数执行后首先做了硬件相关的初始话,这里的延时跟串口初始话没有用到;然后是初始化操作系统,创建任务TaskStart,最后开启调度,任务开启调度后开始运行TaskStart然后在TaskStart中创建了任务1和任务2,随后TaskStart挂起自己不再运行。而任务1跟任务2一直在执行。

上述的TaskStar任务跟任务1和任务2性质没有区别只是功能不同而已,只不过TaskStar是通过main函数创建,功能是建立任务1和任务2。而任务1和任务2功能分别是使两个led周期性的闪烁。其实直接在main函数中通过两个OSTaskCreate函数创建任务1和任务2省略TaskStar任务也可以达到同样的效果。有兴趣的话大家可以试试。

程序中ConfigurationSysTick_Handler分别为系统时钟配置和系统时钟中断服务函数,它们为操作系统所用建立任务时不用理会。

 

为了便于观察理解本人在三个任务分别添加了串口打印代码

以下是keil下仿真截图:




时间不早了,先讲到这。由于本人尚处在学习阶段,有错误之处希望大家批评指正。

上面写只是对原子的工程实例做了些说明,各位如果觉得有帮助,本人后面将继续发表些原子开发板下通用模板建立、和后续的应用实例相关的帖子。

 

 

 

 

 

                                                                                

 

 

 

 

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

100

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
278
金钱
278
注册时间
2012-4-15
在线时间
0 小时
发表于 2012-4-21 00:22:41 | 显示全部楼层
请问楼主学习ucos2用的是什么资料
喜欢单片机,没什么道理,就像爱吃水煮鱼,对味而已。
回复 支持 反对

使用道具 举报

9

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
426
金钱
426
注册时间
2011-7-11
在线时间
49 小时
发表于 2012-4-21 00:29:42 | 显示全部楼层
虽然看不懂,还是先膜拜一下小小菜~~
回复 支持 反对

使用道具 举报

98

主题

408

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2010-12-14
在线时间
0 小时
发表于 2012-4-21 01:54:32 | 显示全部楼层
楼主写得好,希望写更多的学习笔记!谢谢!
希望openedv能给大家提供一个友好的技术交流平台!
回复 支持 反对

使用道具 举报

59

主题

189

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
451
金钱
451
注册时间
2012-4-11
在线时间
1 小时
发表于 2012-4-21 08:22:36 | 显示全部楼层
我也想了解一下但是不知道看什么样的书籍 推荐一下呗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-4-21 10:08:34 | 显示全部楼层
这个要顶.
楼主继续...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

21

主题

135

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
238
金钱
238
注册时间
2011-4-12
在线时间
0 小时
发表于 2012-4-21 10:37:25 | 显示全部楼层
回复【2楼】爱吃水煮鱼:

---------------------------------
回复【5楼】shenhao7752376:

---------------------------------
入门的话有一本任哲的书,有一本张勇的书。
自信人生一百年
回复 支持 反对

使用道具 举报

21

主题

135

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
238
金钱
238
注册时间
2011-4-12
在线时间
0 小时
发表于 2012-4-21 10:37:52 | 显示全部楼层
顶楼主啊!!!!
自信人生一百年
回复 支持 反对

使用道具 举报

19

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2012-2-20
在线时间
0 小时
发表于 2012-4-21 11:17:58 | 显示全部楼层
貌似不是很懂!不过知道是啥回事了,我也试试看。。。
追求卓越,超越自己!
回复 支持 反对

使用道具 举报

7

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
389
金钱
389
注册时间
2012-3-4
在线时间
69 小时
 楼主| 发表于 2012-4-21 19:03:47 | 显示全部楼层
回复【2楼】爱吃水煮鱼:
---------------------------------
我用电子科技大学 卢有亮的《嵌入式实时操作系统μC/OS原理与实践》。
回复 支持 反对

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2012-2-16
在线时间
0 小时
发表于 2012-4-25 11:44:47 | 显示全部楼层
顶小小菜  呵呵
自学成才
回复 支持 反对

使用道具 举报

6

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2012-1-13
在线时间
0 小时
发表于 2012-5-8 12:38:05 | 显示全部楼层
土豆上有 电子科技大学 卢有亮 有一些关于ucos的视频,可以去看看!
回复 支持 反对

使用道具 举报

36

主题

150

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
349
金钱
349
注册时间
2012-1-21
在线时间
12 小时
发表于 2012-5-19 19:31:21 | 显示全部楼层
没看过  嵌入式实时操作系统μC/OS原理与实践,  不过觉得其中的一些文字  有任哲的书有点像
回复 支持 反对

使用道具 举报

19

主题

65

帖子

0

精华

初级会员

Rank: 2

积分
164
金钱
164
注册时间
2011-11-6
在线时间
1 小时
发表于 2012-5-24 17:12:17 | 显示全部楼层
顶,一直没搞清楚消息邮箱,消息队列,这些难的东西在STM32上是怎么应用的。
回复 支持 反对

使用道具 举报

9

主题

102

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2011-1-20
在线时间
7 小时
发表于 2012-6-19 09:55:14 | 显示全部楼层
期待后续的内容。
回复 支持 反对

使用道具 举报

6

主题

68

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
271
金钱
271
注册时间
2011-12-17
在线时间
4 小时
发表于 2012-6-19 23:11:53 | 显示全部楼层
楼主就是奋斗开发板的作者吧?写得那本嵌入式实时操作系统正在看呢!
与其相濡以沫,不如相望江湖!
回复 支持 反对

使用道具 举报

59

主题

189

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
451
金钱
451
注册时间
2012-4-11
在线时间
1 小时
发表于 2012-7-3 20:10:37 | 显示全部楼层
顶楼主了!!期待楼主发些实例讲解!!!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-7-3 22:39:33 | 显示全部楼层
回复【17楼】shenhao7752376:
---------------------------------
应该不是吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2012-5-29
在线时间
0 小时
发表于 2012-7-9 01:03:19 | 显示全部楼层
正在学习ucos   觉得很赞 
回复 支持 反对

使用道具 举报

7

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
389
金钱
389
注册时间
2012-3-4
在线时间
69 小时
 楼主| 发表于 2012-7-10 23:15:28 | 显示全部楼层
回复【16楼】相识在天涯:
---------------------------------
呵呵 太抬举我了,我也是学习者。。
回复 支持 反对

使用道具 举报

7

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
389
金钱
389
注册时间
2012-3-4
在线时间
69 小时
 楼主| 发表于 2012-7-10 23:17:12 | 显示全部楼层
回复【17楼】shenhao7752376:
---------------------------------
最近工作比较忙,后面有时间的话会发些笔记 大家一块交流。
回复 支持 反对

使用道具 举报

4

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2012-4-11
在线时间
8 小时
发表于 2012-8-25 21:12:20 | 显示全部楼层
顶..楼主的笔记做得那么好,谢谢共享。学习了,看来以后我也要做些笔记。
回复 支持 反对

使用道具 举报

18

主题

158

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
400
金钱
400
注册时间
2011-11-23
在线时间
0 小时
发表于 2012-8-25 21:48:01 | 显示全部楼层
回复【21楼】sun:
---------------------------------
楼主写的这些深有体会,结合最基本的led灯点亮两个任务,把ucos简单的介绍了一下,笔记做的相当不错,支持楼主,希望楼主在后面中断和通信中有更多精彩的笔记~
回复 支持 反对

使用道具 举报

1

主题

22

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2012-8-11
在线时间
0 小时
发表于 2012-8-27 17:20:18 | 显示全部楼层
回复【楼主位】sun:
---------------------------------
请问楼主,学习UCOS,多数人会推荐任哲的书和邵贝贝翻译那本,请问这两本书哪一本比较好,我手上有邵贝贝的,但看了一段时间,感觉有些地方还是挺难理解的。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-8-27 17:44:06 | 显示全部楼层
回复【24楼】alwlnso:
---------------------------------
任哲的,最容易理解了
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2012-8-8
在线时间
0 小时
发表于 2012-9-24 12:49:24 | 显示全部楼层
对学习挺有帮助的。
STAY HUNGRY,STAY FOOLISH!
回复 支持 反对

使用道具 举报

13

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2012-7-20
在线时间
0 小时
发表于 2012-9-25 11:07:34 | 显示全部楼层
回复 支持 反对

使用道具 举报

10

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
244
金钱
244
注册时间
2012-7-20
在线时间
65 小时
发表于 2012-9-27 15:58:27 | 显示全部楼层
谢谢楼主抽空写的注释
回复 支持 反对

使用道具 举报

18

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2012-9-2
在线时间
5 小时
发表于 2012-10-6 09:39:00 | 显示全部楼层
非常感谢,通过这个帖子我开始了ucos的第一次移植~
回复 支持 反对

使用道具 举报

3

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2012-2-26
在线时间
0 小时
发表于 2012-10-6 19:51:33 | 显示全部楼层
楼主写的挺好的,谢谢分享
努力向前狂奔,只为追随吾心
回复 支持 反对

使用道具 举报

126

主题

820

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1683
金钱
1683
注册时间
2012-10-28
在线时间
62 小时
发表于 2013-4-11 17:45:11 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

3

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2012-8-6
在线时间
0 小时
发表于 2013-5-10 03:03:31 | 显示全部楼层
mark
回复 支持 反对

使用道具 举报

0

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2013-5-30
在线时间
3 小时
发表于 2013-10-10 17:00:40 | 显示全部楼层
学习下了!非常感谢楼主!
做自己喜欢做的的事,爱自己所爱的人!
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2013-3-12
在线时间
0 小时
发表于 2013-10-29 15:32:33 | 显示全部楼层
讲得很好,学习了!!!这正是我目前所需要的,谢谢楼主!
女孩,握紧你的右手!——毕淑敏
回复 支持 反对

使用道具 举报

7

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
389
金钱
389
注册时间
2012-3-4
在线时间
69 小时
 楼主| 发表于 2013-11-4 20:01:36 | 显示全部楼层
回复【34楼】听涯:
---------------------------------
不客气
回复 支持 反对

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2013-4-7
在线时间
6 小时
发表于 2013-11-8 10:08:20 | 显示全部楼层
这个得顶!!很多小白就是需要楼主的这种不嫌其烦的啰嗦态度!,,,有一处不明“OS_LOWEST_PRIO    12,这里设置任务最低优先级为12  所以在这里我们在设置任务优先级的时候不可大于10”。既然最低有限级别是0,在这里设置了最低优先级为12(OS_LOWEST_PRIO    12),也就是说设置的任务只能是设置大于12的。但为什么还会有“在这里我们在设置任务优先级的时候不可大于10”???可是#define LED_TASK_Prio       11已经设置优先级为11了,不是已经大于10优先级了么??。小生愚钝,有点矛盾了,还望楼主不吝解释啊。。
我不是想是否能够取得了成功,既然选择了远方,就要风雨兼程!!
回复 支持 反对

使用道具 举报

7

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
389
金钱
389
注册时间
2012-3-4
在线时间
69 小时
 楼主| 发表于 2013-11-8 23:33:51 | 显示全部楼层
回复【36楼】土豆一麻袋:
---------------------------------
是这样的,定义OS_LOWEST_PRIO    为12 。主要目的是初始化空闲任务跟和统计任务的任务优先级。如果系统最大任务数OS_MAX_TASKS     设置为11,就是说除了空闲任务跟和统计任务外的9个任务的优先级数字可以设置为0到9,还有一个优先级数字保留。一般情况下OS_LOWEST_PRIO 设置都比OS_MAX_TASKS     大一些,而在设置任务优先级的时候相邻任务间的优先级数字一般都会留有一些间隔。比如最高优先级设为3,次优先级设为5。这样做的好处是如果后续增加新的任务的时候,如果优先级要求还比较高,这个时候只需要插入到前面优先级列表中就行了,不然就要大幅度的改动前面的任务优先级了。最后记得一点就行了OS_LOWEST_PRIO跟OS_MAX_TASKS不是一一对应的关系,不然留一个就可以了。
回复 支持 反对

使用道具 举报

7

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
389
金钱
389
注册时间
2012-3-4
在线时间
69 小时
 楼主| 发表于 2013-11-8 23:38:46 | 显示全部楼层
回复【25楼】正点原子:
---------------------------------
这个帖子发了有一年多了 见大家热情不减 原子个能不能再给增加些暖意,穿个“裤”子啊。哈哈!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-11-9 20:12:00 | 显示全部楼层
回复【38楼】sun:
---------------------------------
OK
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2013-4-7
在线时间
6 小时
发表于 2013-11-11 20:56:25 | 显示全部楼层
回复【37楼】sun:
---------------------------------
感谢你的热情回复!期待楼主的继续更新哈。。。
我不是想是否能够取得了成功,既然选择了远方,就要风雨兼程!!
回复 支持 反对

使用道具 举报

8

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2013-8-11
在线时间
0 小时
发表于 2013-11-12 22:42:48 | 显示全部楼层
 非常的好。我最近在学习这个,希望楼主能分享更多此类的文章
回复 支持 反对

使用道具 举报

8

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2013-8-11
在线时间
0 小时
发表于 2013-11-12 22:52:31 | 显示全部楼层
楼主,我看完了再赞一个!!!!!!
回复 支持 反对

使用道具 举报

12

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
235
金钱
235
注册时间
2013-4-24
在线时间
34 小时
发表于 2014-2-13 20:18:51 | 显示全部楼层
mark。。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 11:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表