私は 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が実際にスタックとして使用できる領域に存在する必要があると定義したスタックを理解していませんでしたか?