Пример #1
0
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);
    }
}
Пример #2
0
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;
    }
}
Пример #3
0
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");
    }
}
Пример #4
0
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);


}
Пример #5
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;
    }
}
Пример #6
0
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");
    }
}
Пример #7
0
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);
}
Пример #8
0
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(']');
        }
    }
}
Пример #9
0
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;
}
Пример #10
0
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;
}
Пример #11
0
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");
    }
}
Пример #12
0
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");
}
Пример #13
0
static void
cliUptime(char *cmdline) {
    cli_puts("Uptime:         ");
    cli_puts(uptime_format());
    cli_puts("\r\n");
}
Пример #14
0
int jerry_port_putchar (int c)
{
    cli_puts(c);
    return 0;
}
Пример #15
0
void ui_tab_folders_start()
{
    cli_puts("Folders");
}