added more UART low-level functions

Committed on the Free edition of March Hare Software CVSNT Server.
Upgrade to CVS Suite for more features and support:
http://march-hare.com/cvsnt/


git-svn-id: http://moon:8086/svn/vhdl/trunk@512 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
2009-10-14 22:04:44 +00:00
parent abb030f663
commit 73dcae8d35
2 changed files with 103 additions and 14 deletions
+33 -5
View File
@@ -17,6 +17,8 @@
#define FLOAT32 float
#define FLOAT64 double
#define NO_ERROR LSYS_SUCCESS
#define ERROR LSYS_ERR_BASE
#define LSYS_SUCCESS 0
#define LSYS_ERR_BASE 0x80000000
@@ -40,9 +42,18 @@
#define sys_itim2_cmp 0xA0000038
#define sys_itim3_cmp 0xA000003C
#define sys_uart_data 0xA0010000
#define sys_uart_stat 0xA0010004
#define sys_uart_baud 0xA0010008
#define sys_uart_data sys_uart0_data
#define sys_uart_stat sys_uart0_stat
#define sys_uart_baud sys_uart0_baud
#define sys_uart0_data 0xA0010000
#define sys_uart0_stat 0xA0010004
#define sys_uart0_baud 0xA0010008
#define sys_uart1_data 0xA0010100
#define sys_uart1_stat 0xA0010104
#define sys_uart1_baud 0xA0010108
#define sys_uart2_data 0xA0010200
#define sys_uart2_stat 0xA0010204
#define sys_uart2_baud 0xA0010208
#define sys_usb_data 0xA0020000
#define sys_usb_mbx 0xA0020004
#define sys_usb_addr 0xA0020008
@@ -68,13 +79,18 @@
//#define STDOUT_FUNCTION _cg_putchar // Video character
//#define STDERR_FUNCTION _putchar // Serial output
#ifndef _putchar
#define _putchar _ser_putchar // Serial output
#endif
#ifndef STDOUT_FUNCTION
#define STDOUT_FUNCTION _putchar // Serial output
#define STDOUT_FUNCTION _ser_putchar // Serial output
#endif
#ifndef STDERR_FUNCTION
#define STDERR_FUNCTION _putchar // Serial output
#define STDERR_FUNCTION _ser_putchar // Serial output
#endif
UINT32 CP0_SR_read(void);
void CP0_SR_write(UINT32 val);
UINT32 CP0_CR_read(void);
@@ -89,6 +105,18 @@ void ICACHE_invalidate_at(UINT32* pPtr);
void DCACHE_invalidate_all(void);
void DCACHE_invalidate_at(UINT32* pPtr);
#define CALC_BAUD(b) \
((UINT32)((float)CPU_FREQ_HZ/(16*b) + 0.5f) - 1);
#define UART0_setbaud(b) \
*((UINT32*)sys_uart0_baud) = CALC_BAUD(b);
#define UART1_setbaud(b) \
*((UINT32*)sys_uart1_baud) = CALC_BAUD(b);
#define UART2_setbaud(b) \
*((UINT32*)sys_uart2_baud) = CALC_BAUD(b);
char readchar(void);
void writechar(char c);
int write(int file, char *ptr, int len);