任务的概念
在实际应用中一般是将工作拆分为多个任务的,并且每个任务都是可靠的。在使用uC/OS就可以很好的解决这个问题,任务又叫线程,在对于单个CPU来说,在任何时刻,都是只能有有一个任务被执行。
uC/OS-III 支持多任务且对任务数量没有限制,任务数仅取决于处理器内存的大小(RAM)。多任务调度是任务间占用CPU 的过程。CPU 有根据算法切换任务。多任务调度让人感觉到是有多个CPU在运行,并最大化利用CPU。多任务调用有助于模块化应用,是最重要的功能之一,能帮助程序员管理复杂的实时性应用。它也使程序易于设计和维护。
任务用于监控输入、更新输出、计算、循环控制、显示、读按钮和键盘、与其它系统交流等。有些应用中可能只包含少数任务,有些应用中也可能包含上百个任务。任务数多并不意味这设计有多好或者有多有效,这依赖于应用的需要。任务的功能也要根据应用设计。一个任务可能只需要工作几微秒,然而有些任务可能就需要工作几十毫秒了。
在大多数嵌入式系统中,任务通常是无限循环的。任务不能像C 函数那样,它是不能return 的。
当任务第一次执行时,会传入一个变量"p_arg"。这是一个指向void的指针。用于变量的地址、结构体地址、或者函数的地址等。只运行一次的任务结束时必须通过调用OSTaskDel()删除自己。这样可以使系统中的任务数减少。在任务体中,任务可以调用uC/OS-III提供的大部分函数帮助完成其所需要完成的功能。