我是 RTOS 的新手,在 C/C++ 系统端(应用程序端)编程方面有几个月的经验。但是进入这个嵌入式领域,我被几个问题绊倒了。
将参数传递给任务是什么意思?我不明白下面给出的例子。
static void TaskEx(void* pData) {
while (1) {
OS_Delay ((OS_TIME) pData);
}
}
void OS_CreateTask ( OS_TASK * pTask,char * pName,unsigned char Priority,voidRoutine * pRoutine,void * pStack,unsigned StackSize,unsigned char TimeSlice );
OS_CreateTask(&TaskMain, NULL, 50, TaskEx, StackMain, sizeof(StackMain), 2);
// ^ 这不是传参就是任务。
void OS_CreateTaskEx ( OS_TASK * pTask, char * pName, unsigned char Priority, voidRoutine *pRoutine, void * pStack, unsigned StackSize, unsigned char TimeSlice, void * pContext );
OS_CREATETASK_EX(&TCBLP, "LP Task", TaskEx, 50, StackLP, (void*) 200);
// ^ 这是传递参数是一个任务。
- 我知道在普通的 C 编程中定义一个堆栈。但是在 RTOS 中,我不明白您定义的堆栈必须驻留在 CPU 实际可以用作堆栈的区域中吗?