📄 uart.h
字号:
/***************************************** Copyright (c) 2002-2004 Sigma Designs, Inc. All Rights Reserved Proprietary and Confidential *****************************************//* This file is part of the EM86XX boot loader */#ifndef __BOOTLOADER_UART_H#define __BOOTLOADER_UART_H#include "version.h"#include "emhwlib_registers.h"/* * UART Registers */#define UART0_BASE (REG_BASE_cpu_block + CPU_UART0_base)#define UART1_BASE (REG_BASE_cpu_block + CPU_UART1_base)#define UART_RBR CPU_UART_RBR#define UART_TBR CPU_UART_THR#define UART_IER CPU_UART_IER#define UART_IIR CPU_UART_IIR#define UART_FCR CPU_UART_FCR#define UART_LCR CPU_UART_LCR#define UART_MCR CPU_UART_MCR#define UART_LSR CPU_UART_LSR#define UART_MSR CPU_UART_MSR#define UART_SCRATCH CPU_UART_SCR#define UART_CLKDIV CPU_UART_CLKDIV#define UART_CLKSEL CPU_UART_CLKSEL/* Line Control Register */#define UART_LCR_SBC 0x40 /* Set break control */#define UART_LCR_SPAR 0x20 /* Stick parity (?) */#define UART_LCR_EPAR 0x10 /* Even parity select */#define UART_LCR_PARITY 0x08 /* Parity Enable */#define UART_LCR_STOP 0x04 /* Stop bits: 0 = 1 stop bit, 1 = 2 stop bits */#define UART_LCR_WLEN5 0x00 /* Wordlength: 5 bits */#define UART_LCR_WLEN6 0x01 /* Wordlength: 6 bits */#define UART_LCR_WLEN7 0x02 /* Wordlength: 7 bits */#define UART_LCR_WLEN8 0x03 /* Wordlength: 8 bits */#define UART_LCR_N81 0x03 /* None, 8 bit, 1 bit */#define UART_PARITY_NONE 0x00#define UART_PARITY_ODD 0x08#define UART_PARITY_EVEN 0x18// default configuration// #define DEFAULT_UART_PORT 0// #define DEFAULT_UART_BAUDRATE 38400 // 300, 1200, 2400, 4800, 9600, // 19200, 38400, 57600, 115200, 230400#define DEFAULT_UART_DATABITS 8 // 5 - 8#define DEFAULT_UART_STOPBITS 1 // 1 - 2#define DEFAULT_UART_PARITY UART_PARITY_NONE // none, even, odd//// function prototypes//// initializationvoid uart_init(void);void uart_init_port(int port, int baudrate, int fifo);void uart_reset(void);// outputvoid uart_putc(int ch);void uart_puts(const char *t);void uart_putns(const char *t, int maxlen);//int uart_printf(const char *fmt, ...) __attribute__((format(printf, 1, 2)));int uart_printf(const char *fmt, ...);void uart_printbyte(unsigned int data);void uart_printshort(unsigned int data);void uart_printlong(unsigned int data);void uart_printint(int data);// inputenum { GETSTR_ESCAPE = 0x01, GETSTR_APPEND = 0x02, GETSTR_APPENDDISP = 0x04};int uart_peekc(void);int uart_getc(void);void uart_ungetc(int ch);char *uart_gets_raw(char *str, int maxlen);char *uart_gets(char *str, int maxlen, int flag);char *uart_getcmd(char *str);// macro#define PAUSE { char tmpstr[256]; uart_puts("(pause)\n"); uart_gets_raw(tmpstr, sizeof tmpstr); }#endif // __BOOTLOADER_UART_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -