zynq ucos中的默认任务介绍

2016-07-11 23:52 阅读 444 次 评论 0 条

在通过ucos bsp生成ucos application project后,会自动创建两个任务,一个StartupTask任务,通过函数指针调用MainTask函数,相当于转换为MainTask任务。另一个任务为Task Tick,一个定时器任务,默认为1KHz,即周期1ms。这个任务便于完成ucos中关于pending超时等操作。

StartupTask任务的默认优先级为5,算是比较高的。设置如下图所示

image

time tick任务优先级为2,算是最高优先级了,保证计时的准确性。ucos 通过一个变量OSTickCtr记录time tick的次数,1s计数1000次。可以通过OS_TICK  OSTimeGet (OS_ERR  *p_err)读取当前的时间计数值。

image

注意:此处的OSTickCtr为32bit无符号整型,最大值2^32,以1ms计算大于为49天的时间,计数器将溢出清零,如果系统需要连续运行超过49天,或许需要考虑time tick的准确性问题。

还有一个经常用的任务STATISTICS TASK,任务状态统计任务,默认是关闭。配置开启后,其优先级为10,每秒统计10次cpu使用率,如上图所示。这也就是建议将app task的优先级定义为10以后(优先级低于10)的原因。如果将app task的优先级定义为10了,尽管默认情况下round-robin未开启,但由于两个任务执行的时间并非同时,所以两个任务基本可以正常运行。但为了保证时刻正常运行,建议将两个优先级定义为不同。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:zynq ucos中的默认任务介绍 | 起点博客
分类:应用笔记 标签:, , ,

发表评论


表情