static void cmd_random(BaseSequentialStream *chp, int argc, char *argv[]) { uint16_t size = 16; uint16_t i = 0; uint8_t nl = 0; if (argc > 0) { size = atoi(argv[0]); } if (size > RANDOM_BUFFER_SIZE) { chprintf(chp, "random: maximum size is %d.\r\n", RANDOM_BUFFER_SIZE); return; } chprintf(chp, "Fetching %d random byte(s):\r\n", size); rngStart(&RNGD1, NULL); rngWrite(&RNGD1, random_buffer, size, TIME_INFINITE); rngStop(&RNGD1); for (i = 0 ; i < size ; i++) { chprintf(chp, "%02x ", random_buffer[i]); if (nl = (((i+1) % 20) == 0)) chprintf(chp, "\r\n"); } if (!nl) chprintf(chp, "\r\n"); }
int main(void) { halInit(); chSysInit(); get_device_id(); /* start stdout port */ sdStart(SD_STDIO, NULL); xflash_init(); cmdline_init(); rngStart(&RNGD); app_cfg_init(); check_for_faults(); gfx_init(); touch_init(); sensor_init(SENSOR_1, SD_OW1); sensor_init(SENSOR_2, SD_OW2); temp_control_init(CONTROLLER_1); temp_control_init(CONTROLLER_2); ota_update_init(); net_init(); web_api_init(); sntp_init(); gui_init(); thread_watchdog_init(); create_home_screen(); recovery_screen_create(); screen_saver_create(); if (palReadPad(PORT_SELF_TEST_EN, PAD_SELF_TEST_EN) == 0) { widget_t* self_test_screen = self_test_screen_create(); gui_push_screen(self_test_screen); } recovery_img_init(); while (TRUE) { cmdline_restart(); toggle_LED1(); } }