void SHELL_Init(void) { FSSH1_Init(); /* create mutex/semaphore */ #if PL_HAS_RTOS if (FRTOS1_xTaskCreate(ShellTask, (signed portCHAR *)"Shell", configMINIMAL_STACK_SIZE+150, NULL, tskIDLE_PRIORITY+1, NULL) != pdPASS) { for(;;){} /* error */ } #endif }
static portTASK_FUNCTION(ShellTask, pvParameters) { unsigned char cmd_buf[32]; (void)pvParameters; FSSH1_Init(); cmd_buf[0] = '\0'; (void)FSSH1_ParseCommand((const unsigned char*)FSSH1_CMD_HELP, FSSH1_GetStdio(), ParseCommand); for(;;) { (void)FSSH1_ReadAndParseLine(cmd_buf, sizeof(cmd_buf), FSSH1_GetStdio(), ParseCommand /* local cmd parser */); FRTOS1_vTaskDelay(50/portTICK_RATE_MS); LED2_Neg(); } }