void init_serial() { // Create the Serial task _OS_CreatePeriodicTask(SERIAL_TASK_PERIOD, SERIAL_TASK_PERIOD, SERIAL_TASK_PERIOD / 40, 0, g_serial_task_stack, sizeof(g_serial_task_stack), "SERIAL", SYSTEM_TASK, &g_serial_task, SerialTaskFn, 0); }
void syscall_PeriodicTaskCreate(const _OS_Syscall_Args * param_info, const void * arg, void * ret) { const UINT32 * uint_args = (const UINT32 *)arg; UINT32 * uint_ret = (UINT32 *)ret; OS_Return result = SYSCALL_ARGUMENT_ERROR; if((param_info->arg_count >= 9) && (param_info->ret_count >= 2)) { result = _OS_CreatePeriodicTask((UINT32)uint_args[0], (UINT32)uint_args[1], (UINT32)uint_args[2], (UINT32)uint_args[3], (UINT32 *)uint_args[4], (UINT32)uint_args[5], (INT8 *)uint_args[6], USER_TASK, (OS_Task_t *)(uint_ret+1), (void *)uint_args[7], (void *)uint_args[8]); } if(uint_ret) uint_ret[0] = result; }