/* * Application entry point. */ int main(void) { /* RTC initially stopped.*/ WDTCTL = WDTPW | WDTHOLD; /* * System initializations. * - HAL initialization, this also initializes the configured device drivers * and performs the board-specific initializations. * - Kernel initialization, the main() function becomes a thread and the * RTOS is active. */ halInit(); chSysInit(); /* * The main() function becomes a thread here then the interrupts are * enabled and ChibiOS/RT goes live. */ /* * Activates the serial driver 2 using the driver default configuration. */ sdStart(&SD1, NULL); sdStart(&SD2, NULL); /* Shell manager initialization.*/ shellInit(); static WORKING_AREA(waShell1, 512); shellCreateStatic(&shell_cfg[0], waShell1, sizeof(waShell1), NORMALPRIO); static WORKING_AREA(waShell2, 512); shellCreateStatic(&shell_cfg[1], waShell2, sizeof(waShell2), NORMALPRIO); /* Creates the blinker thread. */ Thread *th[] = { chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO+1, Thread1, NULL), chThdCreateStatic(waThread2, sizeof(waThread2), NORMALPRIO+2, Thread2, NULL), }; cnt_t idx; for( idx = 0; idx < sizeof(th)/sizeof(th[0]); ++idx ) { msg_t msg = chThdWait(th[idx]); } /* * Normal main() thread activity, in this demo it does nothing except * sleeping in a loop. */ while (TRUE) { chThdSleepMilliseconds(500); } return 0; }
/** * Main function. */ int main(void){ halInit(); chSysInit(); chThdCreateStatic(blinkWA, sizeof(blinkWA), NORMALPRIO, blink_thd, NULL); sdStart(&SD1, NULL); /* Default is 38400-8-N-1.*/ if (LPC_SC->PCON & (1UL << 11)) { chprintf(chp1, "Woke from Deep power-down\r\n"); LPC_SC->PCON |= (1UL << 11); } if (LPC_SC->PCON & (1UL << 9)) { chprintf(chp1, "Woke from Deep-sleep mode\r\n"); LPC_SC->PCON |= (1UL << 9); } /* Shell initialization.*/ shellInit(); static WORKING_AREA(waShell, 1024); shellCreateStatic(&shell_cfg1, waShell, sizeof(waShell), NORMALPRIO); /* wait until user do not want to test wakeup */ while (TRUE){ chThdSleepMilliseconds(200); } return 0; }
/** * Main function. */ int main(void){ halInit(); chSysInit(); chThdCreateStatic(blinkWA, sizeof(blinkWA), NORMALPRIO, blink_thd, NULL); #if !WAKEUP_TEST /* switch off wakeup */ rtcSetPeriodicWakeup_v2(&RTCD1, NULL); /* Shell initialization.*/ sdStart(&SD2, &ser_cfg); shellInit(); static WORKING_AREA(waShell, 1024); shellCreateStatic(&shell_cfg1, waShell, sizeof(waShell), NORMALPRIO); /* wait until user do not want to test wakeup */ while (TRUE){ chThdSleepMilliseconds(200); } #else /* set wakeup */ wakeupspec.wakeup = ((uint32_t)4) << 16; /* select 1 Hz clock source */ wakeupspec.wakeup |= 9; /* set counter value to 9. Period will be 9+1 seconds. */ rtcSetPeriodicWakeup_v2(&RTCD1, &wakeupspec); chThdSleepSeconds(3); func_sleep(); #endif /* !WAKEUP_TEST */ return 0; }
void senokoShellRestart(void) { /* Recovers memory of the previous shell. */ if (shell_tp && chThdTerminatedX(shell_tp)) chThdRelease(shell_tp); shell_tp = shellCreateStatic(&shellConfig, waShellThread, sizeof(waShellThread), NORMALPRIO); }
void console_init(void) { if (palReadPad(GPIO_PORT_SERIAL_RX, GPIO_PIN_SERIAL_RX) == 0) { lowsyslog("Console: RX pin is low, console will not be inited\n"); return; } shellInit(); assert_always(shellCreateStatic(&_config, _wa_shell, sizeof(_wa_shell), LOWPRIO)); }
void shell_init(void) { #ifdef SHELL_TESTING palSetPadMode(GPIOA, 2, PAL_MODE_STM32_ALTERNATE_PUSHPULL); #else //turn off txd palSetPadMode(GPIOA, 2, PAL_MODE_INPUT); #endif palSetPadMode(GPIOA, 3, PAL_MODE_INPUT); sdStart(&SD2, &cfg); shellCreateStatic(&shell_cfg, &shell_wa, sizeof(shell_wa), NORMALPRIO); }
void telemetryInit() { /* Initialize serial */ sdStart(&TELEMETRY_SERIAL, &serialConfig); TELEMETRY_ALTERNATE_FUNCTION() /* Start up the interactive shell */ shellInit(); chprintf(TELEMETRY_STREAM, "Telemetry Initialized!\r\n"); static WORKING_AREA(waShell, 1024); shellCreateStatic(&shellConfig, waShell, sizeof(waShell), NORMALPRIO); }
/* * Application entry point. */ int main(void) { halInit(); chSysInit(); /* start debugging serial link */ sdStart(&SD2, &ser_cfg); shellInit(); static WORKING_AREA(waShell, 4096); shellCreateStatic(&shell_cfg1, waShell, sizeof(waShell), NORMALPRIO); /* * Initializes the SDIO drivers. */ sdcStart(&SDCD1, &sdccfg); /* * Normal main() thread activity. * Blinking signaling about successful passing. */ while (TRUE) { palTogglePad(GPIOB, GPIOB_LED_R); chThdSleepMilliseconds(100); } }
void start_bluetooth_shell() { sdStart(&SD6, &serialconfig); shellCreateStatic(&btshellconfig, btshellstack, sizeof(btshellstack), NORMALPRIO); }
void console_init(void) { shellInit(); ASSERT_ALWAYS(shellCreateStatic(&_config, _wa_shell, sizeof(_wa_shell), LOWPRIO)); }
CCM_FUNC static THD_FUNCTION(ThreadSDU, arg) { (void)arg; uint8_t in_buffer[SERIAL_BUFFERS_SIZE]; uint8_t out_buffer[SERIAL_BUFFERS_SIZE]; //uint8_t buffer_check[SERIAL_BUFFERS_SIZE/2]; size_t in, out; thread_t* th_shell = NULL; chRegSetThreadName("SDU"); while(USBD1.state != USB_READY) chThdSleepMilliseconds(10); while(SDU1.state != SDU_READY) chThdSleepMilliseconds(10); while(SD3.state != SD_READY) chThdSleepMilliseconds(10); // Enable K-line transceiver palSetPad(PORT_KLINE_CS, PAD_KLINE_CS); shellInit(); while (TRUE) { if (settings.serialMode == SERIAL_MODE_SHELL) { if (th_shell == NULL || chThdTerminatedX(th_shell)) { th_shell = shellCreateStatic(&shell_cfg1, waThreadShell, sizeof(waThreadShell), NORMALPRIO +1); } chThdSleepMilliseconds(10); continue; } if (settings.serialMode != SERIAL_MODE_KLINE) { chThdSleepMilliseconds(10); continue; } /* In case we stop it to change baudrate */ while (SD3.state != SD_READY) chThdSleepMilliseconds(10); if (doKLineInit && 0) { sdStop(&SD3); klineInit(false); //fiveBaudInit(&SD3); //sdReadTimeout(&SD3, buffer_check, 1, MS2ST(5)); // noise doKLineInit = false; sdStart(&SD3, &uart1Cfg); } in = chnReadTimeout(&SDU1, in_buffer, sizeof(in_buffer), TIME_IMMEDIATE); out = sdReadTimeout(&SD3, out_buffer, sizeof(out_buffer), TIME_IMMEDIATE); while (in == 0 && out == 0) { chThdSleepMilliseconds(1); in = chnReadTimeout(&SDU1, in_buffer, sizeof(in_buffer), TIME_IMMEDIATE); out = sdReadTimeout(&SD3, out_buffer, sizeof(out_buffer), TIME_IMMEDIATE); } if (in > 0) { sdWriteTimeout(&SD3, in_buffer, in, MS2ST(10)); } if (out > 0) { chnWriteTimeout(&SDU1, out_buffer, out, MS2ST(10)); } } return; }