新手上路
- 积分
- 43
- 金钱
- 43
- 注册时间
- 2018-1-4
- 在线时间
- 7 小时
|
1金钱
- 建立两个任务Task1和Task2分别进行打印任务。
[mw_shl_code=c,true]void vTask1(void *pvParameters)
{
const char *pcTaskName = "Task 1 is running\r\n";
volatile uint32_t ul = 0;
for ( ;; )
{
vPrintString(pcTaskName);
for (ul=0; ul<mainDELAY_LOOP_COUNT; ul++)
{
}
}
}
void vTask2(void *pvParameters)
{
const char *pcTaskName = "Task 2 is running\r\n";
volatile uint32_t ul = 0;
for ( ;; )
{
vPrintString(pcTaskName);
for (ul=0; ul<mainDELAY_LOOP_COUNT; ul++)
{
}
}
}[/mw_shl_code]
[mw_shl_code=c,true]void vPrintString(const char *pcString)
{
taskENTER_CRITICAL();
{
printf("%s", pcString);
fflush(stdout);
}
taskEXIT_CRITICAL();
}[/mw_shl_code]
此时,“Task 1 is running”和“Task 2 is running”同时显示。
[mw_shl_code=c,true]void vPrintString(const char *pcString)
{
//taskENTER_CRITICAL();
{
printf("%s", pcString);
fflush(stdout);
}
//taskEXIT_CRITICAL();
}[/mw_shl_code]
此时,“Task 1 is running”和“Task 2 is running”正常交替显示。
|
|