int main(void){ halInit(); chSysInit(); Thread *sh = NULL; sdStart(&SD1,&sd1conf); //sdStart(&SD1,NULL); chThdSleepMilliseconds(200); #if USE_I2C_STUFF I2CInit_pns(); #if USE_I2C_POLL_THD /* Create accelerometer thread */ chThdCreateStatic(PollAccelThreadWA, sizeof(PollAccelThreadWA), NORMALPRIO, PollAccelThread, NULL); chThdCreateStatic(PollColorThreadWA, sizeof(PollColorThreadWA), NORMALPRIO, PollColorThread, NULL); #endif #endif chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL); #if USE_SER_OUT_THD chThdCreateStatic(waSerOutThr1, sizeof(waSerOutThr1), NORMALPRIO, SerOutThr1, NULL); #endif palSetPadMode(GPIOA, GPIOA_PA2, PAL_MODE_OUTPUT_PUSHPULL); palSetPadMode(GPIOA, 3, PAL_MODE_OUTPUT_PUSHPULL); //TestThread(&SD1); shellInit(); while (TRUE){ //palSetPad(GPIOA, 3); //TestThread(&SD1); //chThdSleepMilliseconds(500); //palClearPad(GPIOA, 3); //chThdSleepMilliseconds(500); if (!sh){ chprintf((BaseSequentialStream *)&SD1,"Starting ChibiOS/RT Shell\n\r"); sh = shellCreate(&shCfg, SHELL_WA_SIZE, NORMALPRIO+1); } else if (chThdTerminated(sh)) { chThdRelease(sh); sh = NULL; } // chThdSleepMilliseconds(1000); } }
/* * Entry point, note, the main() function is already a thread in the system * on entry. */ int main(void) { halInit(); chSysInit(); chThdSleepMilliseconds(200); I2CInit_pns(); /* Create accelerometer thread */ chThdCreateStatic(PollAccelThreadWA, sizeof(PollAccelThreadWA), NORMALPRIO, PollAccelThread, NULL); /* Create temperature thread */ chThdCreateStatic(PollTmp75ThreadWA, sizeof(PollTmp75ThreadWA), NORMALPRIO, PollTmp75Thread, NULL); /* Create not responding thread */ chThdCreateStatic(PollFakeThreadWA, sizeof(PollFakeThreadWA), NORMALPRIO, PollFakeThread, NULL); /* Creates the blinker thread. */ chThdCreateStatic(BlinkWA, sizeof(BlinkWA), HIGHPRIO, Blink, NULL); /* main loop that do nothing */ while (TRUE) { chThdSleepMilliseconds(500); } return 0; }