static void cliWriteConfig(void) { int16_t result; if (!HAS_FEATURE(PPSEN) && (cfg.flags & FLAG_PPSEN)) { cli_puts("WARNING: PPS output not available on this hardware\r\n"); cfg.flags &= ~FLAG_PPSEN; } if ((cfg.flags & (FLAG_GPSEXT | FLAG_GPSOUT)) == (FLAG_GPSEXT | FLAG_GPSOUT)) { cli_puts("WARNING: gps_ext_in and gps_ext_out are mutually exclusive.\r\n"); cfg.flags &= ~FLAG_GPSOUT; } /* Check for more than one ntpkey type */ result = 0; if (cfg.flags & FLAG_NTPKEY_MD5) { result++; } if (cfg.flags & FLAG_NTPKEY_SHA1) { result++; } if (result > 1) { cli_puts("WARNING: More than one ntpkey type specified\r\n"); cfg.flags &= ~(FLAG_NTPKEY_MD5 | FLAG_NTPKEY_SHA1); } cli_puts("Writing EEPROM...\r\n"); result = eeprom_write_cfg(); if (result == EERR_OK) { cli_puts("OK\r\n"); serial_drain(cl_out); vTaskDelay(pdMS_TO_TICKS(1000)); NVIC_SystemReset(); } else { show_eeprom_error(result); } }
void cliPrintVar(const clivalue_t *var, uint8_t full) { switch (var->type) { case VAR_UINT32: cli_printf("%u", *(uint32_t*)var->ptr); break; case VAR_UINT16: cli_printf("%u", *(uint16_t*)var->ptr); break; #if CLI_TYPE_IP4 case VAR_IP4: { ip_addr_t *ptr = (ip_addr_t*)var->ptr; cli_printf(IP_DIGITS_FMT, IP_DIGITS(ptr)); break; } #endif #if CLI_TYPE_IP6 case VAR_IP6: { ip6_addr_t *ptr = (ip6_addr_t*)var->ptr; cli_printf(IP6_DIGITS_FMT, IP6_ADDR_BLOCK1(ptr), IP6_ADDR_BLOCK2(ptr), IP6_ADDR_BLOCK3(ptr), IP6_ADDR_BLOCK4(ptr), IP6_ADDR_BLOCK5(ptr), IP6_ADDR_BLOCK6(ptr), IP6_ADDR_BLOCK7(ptr), IP6_ADDR_BLOCK8(ptr)); break; } #endif #if CLI_TYPE_HEX case VAR_HEX: { uint8_t *ptr = (uint8_t*)var->ptr; int i; for (i = 0; i < var->len; i++) { cli_printf("%02x", *ptr++); } break; } #endif #if CLI_TYPE_FLAG case VAR_FLAG: if ( (*(uint32_t*)var->ptr) & var->len ) { cli_puts("true"); } else { cli_puts("false"); } break; #endif case VAR_INVALID: break; } }
static void show_eeprom_error(int16_t result) { if (result == EERR_TIMEOUT) { cli_puts("ERROR: timeout while writing EEPROM\r\n"); } else if (result == EERR_NACK) { cli_puts("ERROR: EEPROM is faulty or missing\r\n"); } else if (result == EERR_FAULT) { cli_puts("ERROR: EEPROM is faulty\r\n"); } else { cli_puts("FAIL: unable to write EEPROM\r\n"); } }
void ui_clockhandler() { //Get time struct rtc_time* time=rtc_gettime(); //Draw time cli_setrect(0); cli_positioncursor(video_getcollumns()-13,0); cli_puts(" "); cli_positioncursor(video_getcollumns()-13,0); cli_putu32(time->hour,10); cli_positioncursor(video_getcollumns()-10,0); cli_putch(':'); cli_positioncursor(video_getcollumns()-8,0); cli_putu32(time->minute,10); cli_positioncursor(video_getcollumns()-5,0); cli_putch(':'); cli_positioncursor(video_getcollumns()-3,0); cli_putu32(time->seccond,10); cli_setrect(&ui_CLIRect); cli_positioncursor(0,0); }
static void test_reset(void) { uint32_t sr = RCC->CSR; RCC->CSR = RCC_CSR_RMVF; if (sr & (RCC_CSR_WWDGRSTF | RCC_CSR_IWDGRSTF)) { cli_puts("\r\n\r\nERROR: Device was reset by watchdog timer!\r\n"); did_watchdog = 1; } }
static void load_eeprom(void) { int16_t rc; rc = eeprom_read_cfg(); if (rc != EERR_OK) { memset(&cfg, 0, sizeof(cfg)); cfg.version = CFG_VERSION; cli_puts("ERROR: EEPROM is invalid, run 'save' or 'defaults' to clear\r\n"); } }
static void cliVersion(char *cmdline) { const char *bootver; cli_printf("Hardware: %d.%d\r\n", hwver >> 8, hwver & 0xff); cli_puts( "Software: " VERSION "\r\n"); bootver = info_get(boot_table, INFO_BOOTVER); if (bootver == NULL) { bootver = "no bootloader"; } cli_printf("Bootloader: %s\r\n", bootver); }
void ui_drawtabs(unsigned char tabid) { //Loop through tabs unsigned int i; for(i=0;i<ui_tabcount;i++) { cli_putch(' '); if(i==tabid) { cli_settextcolour(0xF0); cli_putch('['); cli_puts(ui_tablist[i].name); cli_putch(']'); cli_settextcolour(0x0F); }else{ cli_putch('['); cli_puts(ui_tablist[i].name); cli_putch(']'); } } }
int jerry_port_logmsg (FILE* stream, const char* format, ...) { va_list ap; int n; cli_puts("jLOG: "); va_start(ap, format); n = vprintf(format, ap); va_end(ap); return n; }
int jerry_port_errormsg (const char* format, ...) { va_list ap; int n; cli_puts("jERR: "); va_start(ap, format); n = vprintf(format, ap); va_end(ap); return n; }
void cli_cmd_set(char *cmdline) { uint32_t len; const clivalue_t *val; char *eqptr, *ptr2; len = strlen(cmdline); if (len == 0 || (len == 1 && cmdline[0] == '*')) { cli_puts("Current settings:\r\n"); for (val = &value_table[0]; val->name != NULL; val++) { cli_printf("%s = ", val->name); cliPrintVar(val, len); cli_puts("\r\n"); } } else if ((eqptr = strstr(cmdline, "="))) { /* Null-terminate the setting name */ ptr2 = eqptr; *ptr2 = 0; while (*--ptr2 == ' ') { *ptr2 = 0; } eqptr++; len--; while (*eqptr == ' ') { eqptr++; len--; } for (val = &value_table[0]; val->name != NULL; val++) { if (!strcmp(cmdline, val->name)) { cliSetVar(val, eqptr); cli_printf("%s set to ", val->name); cliPrintVar(val, 0); return; } } cli_puts("ERR: Unknown variable name\r\n"); } }
int main() { //Start video driver (must always be before loading message) mm_init(); pg_init(); real_init(); video_init(); video_setdriver(video_vgatext_getdriver(),0); //Put loading message cli_puts("ArcaneOS Loading...\n"); //Setup kernel gdt_init(); idt_init(); isr_init(); irq_init(); timer_init(); kb_init(); ui_init(); cpuid_init(); cmos_init(); rtc_init(); acpi_init(); power_init(); mt_init(); syscall_init(); floppy_init(); __asm__ __volatile__ ("sti"); //Enable ACPI acpi_enable(); //Create thread for ui mt_create_thread(mt_kernel_process,test,2); //Endless loop to prevent bugs when all threads are sleeping for(;;) __asm__ __volatile__ ("hlt"); }
static void cliUptime(char *cmdline) { cli_puts("Uptime: "); cli_puts(uptime_format()); cli_puts("\r\n"); }
int jerry_port_putchar (int c) { cli_puts(c); return 0; }
void ui_tab_folders_start() { cli_puts("Folders"); }