示例#1
0
文件: cli.c 项目: godzivan/arcadehid
static int f_uread(int uart, int numchars) {
  if (_argc < 1 || _argc > 2) {
    return -1;
  }
  if (uart < 0 || uart >= CONFIG_UART_CNT) {
    return -1;
  }
  if (_argc == 1) {
    numchars = 0x7fffffff;
  }
  int l = UART_rx_available(_UART(uart));
  l = MIN(l, numchars);
  int ix = 0;
  while (ix++ < l) {
    print("%c", UART_get_char(_UART(uart)));
  }
  print("\n%i bytes read\n", l);
  return 0;
}
示例#2
0
文件: cli.c 项目: godzivan/arcadehid
static int f_uconf(int uart, int speed) {
  if (_argc != 2) {
    return -1;
  }
  if (IS_STRING(uart) || IS_STRING(speed) || uart < 0 || uart >= CONFIG_UART_CNT) {
    return -1;
  }
  UART_config(_UART(uart), speed,
      UART_DATABITS_8, UART_STOPBITS_1, UART_PARITY_NONE, UART_FLOWCONTROL_NONE, TRUE);

  return 0;
}
示例#3
0
文件: cli.c 项目: godzivan/arcadehid
static int f_uwrite(int uart, char* data) {
  if (_argc != 2 || !IS_STRING(data)) {
    return -1;
  }
  if (uart < 0 || uart >= CONFIG_UART_CNT) {
    return -1;
  }
  char c;
  while ((c = *data++) != 0) {
    UART_put_char(_UART(uart), c);
  }
  return 0;
}
示例#4
0
文件: cli.c 项目: godzivan/arcadehid
void CLI_init() {
  if (__dbg_magic != 0x43215678) {
    __dbg_magic = 0x43215678;
    SYS_dbg_level(D_WARN);
    SYS_dbg_mask_set(0);
  }
  memset(&cli_state, 0, sizeof(cli_state));
  DBG(D_CLI, D_DEBUG, "CLI init\n");
  UART_set_callback(_UART(UARTSTDIN), CLI_uart_check_char, NULL);
#ifdef CONFIG_ARCHID_VCD
  USB_SER_set_rx_callback(usb_rx_cb, NULL);
#endif

  print ("\n");
  cli_print_app_name();
  print("\n\n");
  print("build     : %i\n", SYS_build_number());
  print("build date: %i\n", SYS_build_date());
  print("\ntype '?' or 'help' for list of commands\n\n");
  print(CLI_PROMPT);
}
示例#5
0
void UART_init() {
  memset(__uart_vec, 0, sizeof(__uart_vec));
  int uc = 0;

#ifdef CONFIG_UART1
  _UART(uc++)->hw = USART1;
  UART_config(_UART(uc-1), UART1_SPEED, UART_DATABITS_8, UART_STOPBITS_1,
      UART_PARITY_NONE, UART_FLOWCONTROL_NONE, TRUE);
  UART_TX_IRQ_OFF(_UART(uc-1));
#endif
#ifdef CONFIG_UART2
  _UART(uc++)->hw = USART2;
  UART_config(_UART(uc-1), UART2_SPEED, UART_DATABITS_8, UART_STOPBITS_1,
      UART_PARITY_NONE, UART_FLOWCONTROL_NONE, TRUE);
  UART_TX_IRQ_OFF(_UART(uc-1));
#endif
#ifdef CONFIG_UART3
  _UART(uc++)->hw = USART3;
  UART_config(_UART(uc-1), UART3_SPEED, UART_DATABITS_8, UART_STOPBITS_1,
      UART_PARITY_NONE, UART_FLOWCONTROL_NONE, TRUE);
  UART_TX_IRQ_OFF(_UART(uc-1));
#endif
#ifdef CONFIG_UART4
  _UART(uc++)->hw = UART4;
  UART_config(_UART(uc-1), UART4_SPEED, UART_DATABITS_8, UART_STOPBITS_1,
      UART_PARITY_NONE, UART_FLOWCONTROL_NONE, TRUE);
  UART_TX_IRQ_OFF(_UART(uc-1));
#endif
}
示例#6
0
void UART4_IRQHandler(void) {
  TRACE_IRQ_ENTER(UART4_IRQn);
  UART_irq(_UART(1));
  TRACE_IRQ_EXIT(UART4_IRQn);
}
示例#7
0
void USART2_IRQHandler(void) {
  TRACE_IRQ_ENTER(USART2_IRQn);
  UART_irq(_UART(0));
  TRACE_IRQ_EXIT(USART2_IRQn);
}