Chapter 5
The event the task is waiting for may simply be the passage of time (when OSTimeDly() or
OSTimeDlyHMSM() is called). For example, a design may need to scan a keyboard every 100
milliseconds. In this case, simply delay the task for 100 milliseconds then see if a key was
pressed on the keyboard and, possibly perform some action based on which key was
pressed. Typically, however, a keyboard scanning task should just buffer an “identifier”
unique to the key pressed and use another task to decide what to do with the key(s) pressed.
Similarly, the event the task is waiting for could be the arrival of a packet from an Ethernet
controller. In this case, the task would call one of the OS???Pend() calls (pend is
synonymous with wait). The task will have nothing to do until the packet is received. Once
the packet is received, the task processes the contents of the packet, and possibly moves
the packet along a network stack.
It’s important to note that when a task waits for an event, it does not consume CPU time.
Tasks must be created in order for μC/OS-III to know about tasks. Create a task by simply
calling OSTaskCreate() . The function prototype for OSTaskCreate() is shown below:
void
OSTaskCreate (OS_TCB
OS_CHAR
OS_TASK_PTR
void
OS_PRIO
CPU_STK
CPU_STK_SIZE
CPU_STK_SIZE
OS_MSG_QTY
OS_TICK
void
OS_OPT
OS_ERR
*p_tcb,
*p_name,
p_task,
*p_arg,
prio,
*p_stk_base,
stk_limit,
stk_size,
q_size,
time_slice,
*p_ext,
opt,
*p_err)
A complete description of OSTaskCreate() and its arguments is provided in Appendix A,
“μC/OS-III API Reference Manual” on page 375. However, it is important to understand that
a task needs to be assigned a Task Control Block (i.e., TCB), a stack, a priority and a few
other parameters which are initialized by OSTaskCreate() , as shown in Figure 5-1.
78
相关PDF资料
AD-UCUSBD-SPRD PRD LIC UCUSB DEV CORE CCES SGL
AD637-EVALZ BOARD EVALUATION FOR AD637
AD736-EVALZ BOARD EVALUATION FOR AD736
AD737-EVALZ BOARD EVALUATION FOR AD737
AD8007AKS-EBZ BOARD EVAL FOR AD8007AKS
AD8018ARU-EVAL BOARD EVAL FOR AD8018
AD8034ART-EBZ BOARD EVAL FOR AD8034ART
AD8040AR-EBZ BOARD EVAL FOR AD8040AR
相关代理商/技术参数
ADUCOSC100 制造商:Analog Devices 功能描述:ADC - Rail/Tube
ADUCOSC100-REEL 功能描述:DAC MICROCONVERTER DUAL TSSOP 制造商:analog devices inc. 系列:* 零件状态:上次购买时间 标准包装:1
ADUCOSC100-REEL7 功能描述:DAC MICROCONVERTER DUAL TSSOP 制造商:analog devices inc. 系列:* 零件状态:上次购买时间 标准包装:1
ADUCOSCZ100 制造商:Analog Devices 功能描述:
ADUCOSCZ100-REEL7 制造商:Analog Devices 功能描述:ANAADUCOSCZ100-REEL7 12 BIT ADC WITH EMB
ADuC-P7026 功能描述:开发板和工具包 - ARM PROTOTYPE BRD FOR ADUC7026 ARM7 RoHS:否 制造商:Arduino 产品:Development Boards 工具用于评估:ATSAM3X8EA-AU 核心:ARM Cortex M3 接口类型:DAC, ICSP, JTAG, UART, USB 工作电源电压:3.3 V
ADUCRF101 制造商:Analog Devices 功能描述:PRECISION ANALOG MICRCONTROLLER - Tape and Reel
ADUCRF101BCPZ128 制造商:Analog Devices 功能描述:PRECISION ANALOG MICROCONTROLLER WITH RF TRANSCEIVER, ARM CO - Trays