uCOSIII使用心得(持续更新中)

1.时间管理的作用?

时间管理函数实质上是各任务进入调度的入口,表现为各任务按照设定的时钟节拍循环执行。设定不同的延迟时间对任务切换有很大影响:设定延迟时间合理,则程序运行流畅;若设定延迟时间不合理,则各任务调度可能会存在堵塞,程序不能按照设定的功能进行。

2.信号量的理解?

信号量主要用于共享资源(如硬件外设)的管理和标志事件发生(cnt参数设为0)。信号量是一个数值,对于多值信号量,可以取一定范围内的整数,计数形式;而对于互斥信号量来说,只能取0和1两个数。如果任务接收到一个信号量,则该信号量的数值会自动减1。对于互斥信号量,被一个任务接收后,会减为0。此时若不重新发布(释放),则其他需要相同互斥量的任务不能执行。

建立信号量的工作必须在任务级代码中或者多任务启动之前完成。想得到信号量的任务,必须执行等待操作(pend)。

3.互斥信号量的理解及使用?

互斥信号量形象的解释:一间屋子,只能一个人进去。门口箱子里放着一把钥匙。当有钥匙时箱子显示1,无钥匙时显示0。来人看见1就打开箱子取出钥匙进屋,同时显示减1为0,再来人时看见0,就知道有人在屋子里,于是在外等待。屋里人出来时,把钥匙放回箱中,显示加1。后面的人看见1又可以进入。这里钥匙就相当于互斥信号量,根据钥匙有无取0/1两个值;屋子相当于公共资源,同一时间只能由一人使用。

对于与硬件设计相关的公共资源,如SPI/I2C/UART接口,都是独占类型的,也就是一个任务在使用这些资源的时候,其余的申请使用该资源的任务只能处于等待状态。这就需要互斥型信号。

4.信号量的删除?

删除信号量是用信号量删除函数,但前提是删除操作该信号量的所有任务,否则删除无效。

4.临界段的作用?

临界段的作用是保证临界段内的程序执行不受中断的干扰,能持续运行直至跳出临界段。所以,对一些需要持续运行的操作,可以放在临界段中执行,特别是一些关键任务。

转载于:https://www.cnblogs.com/tuxinbang/p/10705432.html

你可能感兴趣的:(uCOSIII使用心得(持续更新中))