原创 嵌入式实时操作系统笔记1

2011-6-16 12:50 1317 7 7 分类: MCU/ 嵌入式

1、P5 在启动多任务OSStart()之前,至少要先建立一个任务。这一点非常重要,不这样做,应用程序就会崩溃。

2、P11 当不知道应该给任务分配多少堆栈空间时,堆栈检查功能是很有用的。在这个例子里,先分配足够的堆栈空间给任务,然后用堆栈检查操作查看任务到底需要多少堆栈空间。显然,任务要运行足够长的时间,并要考虑各种情况,才能得到正确的数据。最后确定的堆栈大小,还须考虑系统今后的扩展,一般多分配10%~25%,或者更多的栈空间。如果系统对稳定性要求高,则应该多1倍以上。(要使用堆栈检查操作必须用OSTaskCreatExt()建立任务且在任务建立时给堆栈清0)

3、P16 OSTimeDly()会比OSTimeDlyHMSM稍稍快一点。

4、P23 消息队列和邮箱非常相似,只是消息队列可以容纳多则消息,而邮箱只能容纳一则消息。使用消息队列,一个任务或中断可以很容易与另一个任务通信。每则消息都是一个指针,但是这个指针指向的内容是由用户的应用程序决定的,发送消息和处理消息的任务必须约定好这个指针的用法。建立消息队列需要2个元素:一个OS_EVENT的数据结构和一串指针。消息队列的尝试决定于这一串指针的数目。

5、P38 “图F2.3 任务的状态”

20110616101944001.gif

6、P39

 20110616102657001.gif
7、P42

20110616103007001.gif
8、P44 目前mC/OS-II不支持时间片轮番调度法。应用程序中各任务的优先级必须互不相同(笔者添加:mC/OS-III 支持时间片轮番调度法pdf.gifucos iii介绍.pdf)。

9、P50

20110616104331001.gif
10、P52 P60 P61 mC/OS-II对信号量,邮箱,消息队列只支持优先级法

11、P52 在使用信号量之前一定要对该信号量做初始化。作为互斥条件,信号量初始化为1.

    P56 可以利用信号量使某任务与中断服务同步(或者与另一个任务同步,这2个任务间没有数据交换)。用来实现同步机制的信号量(不再保证互斥条件)初始化成0

12、P55

20110616120716001.gif
13、P77

20110616123712001.gif

14、P78

20110616123933001.gif
15、P82

20110616124917001.gif

 

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条