目前我们正在学习如何编程AVR微控制器(仅限Ansi C89标准).部分包含的驱动程序是一个标题,用于处理调度,即以不同的速率运行任务.我的问题是与文档中的引用有关:
"每个任务必须通过使用静态局部 变量来维护自己的状态."
那是什么意思呢?他们似乎传递void*给维持状态的功能但是不使用它?
看一下我收集的文件中的代码,这就是他们的意思:
{.func = led_flash_task, .period = TASK_RATE / LED_TASK_RATE, .data = 0}
/* Last term the pointer term */
Run Code Online (Sandbox Code Playgroud)
有一个函数在数组中使用上述参数运行,但它只作为调度程序.然后功能led_flash_task是
static void led_flash_task (__unused__ void *data)
{
static uint8_t state = 0;
led_set (LED1, state); /*Not reall important what this task is */
state = !state; /*Turn the LED on or off */
}
Run Code Online (Sandbox Code Playgroud)
并从标题
#define __unused__ __attribute__ ((unused))
Run Code Online (Sandbox Code Playgroud)
而传递void *data是为了维持任务的状态?这是什么意思?
谢谢您的帮助