将参数传递给OS-iii中的新线程作为void指针

时间:2013-01-02 19:19:54

标签: c multithreading embedded

一些背景知识:我正在阅读Micrium的uC / OS-III用户手册,按照该指南,我使用IAR Embedded Workbench IDE在C语言编程。

代码来自为uC-Eval-STM32F107开发板编写的书中提供的一些示例。它正在创建一个新线程,并通过void指针传递参数。我熟悉void指针并将参数传递给线程。

调用内核函数来创建新线程:

OSTaskCreate( ... );

然后在函数定义中,他们做了一些我不知道如何描述的事情:

static  void  AppTaskStart (void *p_arg)
{
    CPU_INT32U  cpu_clk_freq;
    CPU_INT32U  cnts;
    OS_ERR      err;
    CPU_TS  ts;


   p_arg = p_arg;

    ...
}

或者我在其他示例中也看到代码如下所示:

(void *)p_arg;

他们在做什么以及为什么?

1 个答案:

答案 0 :(得分:2)

 p_arg = p_arg;

(void *)p_arg;

用于抑制有关未使用变量p_arg的警告。