summaryrefslogtreecommitdiff
path: root/firmware/target/arm/tms320dm320/uart-dm320.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/tms320dm320/uart-dm320.c')
-rw-r--r--firmware/target/arm/tms320dm320/uart-dm320.c55
1 files changed, 28 insertions, 27 deletions
diff --git a/firmware/target/arm/tms320dm320/uart-dm320.c b/firmware/target/arm/tms320dm320/uart-dm320.c
index 66e59eaaac..f50add4363 100644
--- a/firmware/target/arm/tms320dm320/uart-dm320.c
+++ b/firmware/target/arm/tms320dm320/uart-dm320.c
@@ -28,7 +28,8 @@
28static unsigned char uart1buffer[MAX_UART_BUFFER]; 28static unsigned char uart1buffer[MAX_UART_BUFFER];
29int uart1read = 0, uart1write = 0, uart1count = 0; 29int uart1read = 0, uart1write = 0, uart1count = 0;
30 30
31void do_checksums(char *data, int len, char *xor, char *add) 31/*
32static void do_checksums(char *data, int len, char *xor, char *add)
32{ 33{
33 int i; 34 int i;
34 *xor = data[0]; 35 *xor = data[0];
@@ -39,6 +40,7 @@ void do_checksums(char *data, int len, char *xor, char *add)
39 *add += data[i]; 40 *add += data[i];
40 } 41 }
41} 42}
43*/
42 44
43void uart_init(void) 45void uart_init(void)
44{ 46{
@@ -60,46 +62,50 @@ void uart_init(void)
60 IO_INTC_EINT0 |= (1<<IRQ_UART1); 62 IO_INTC_EINT0 |= (1<<IRQ_UART1);
61} 63}
62 64
63void uartPutc(char ch) { 65void uart1_putc(char ch)
64 // Wait for room in FIFO 66{
67 /* Wait for room in FIFO */
65 while ((IO_UART1_TFCR & 0x3f) >= 0x20); 68 while ((IO_UART1_TFCR & 0x3f) >= 0x20);
66 69
67 // Write character 70 /* Write character */
68 IO_UART1_DTRR=ch; 71 IO_UART1_DTRR=ch;
69} 72}
70 73
71// Unsigned integer to ASCII hexadecimal conversion 74/* Unsigned integer to ASCII hexadecimal conversion */
72void uartPutHex(unsigned int n) { 75void uart1_putHex(unsigned int n)
76{
73 unsigned int i; 77 unsigned int i;
74 78
75 for (i = 8; i != 0; i--) { 79 for (i = 8; i != 0; i--) {
76 unsigned int digit = n >> 28; 80 unsigned int digit = n >> 28;
77 uartPutc(digit >= 10 ? digit - 10 + 'A' : digit + '0'); 81 uart1_putc(digit >= 10 ? digit - 10 + 'A' : digit + '0');
78 n <<= 4; 82 n <<= 4;
79 } 83 }
80} 84}
81 85
82void uartPuts(const char *str) { 86void uart1_puts(const char *str)
87{
83 char ch; 88 char ch;
84 while ((ch = *str++) != '\0') { 89 while ((ch = *str++) != '\0') {
85 uartPutc(ch); 90 uart1_putc(ch);
86 } 91 }
87} 92}
88 93
89void uartGets(char *str, unsigned int size) { 94void uart1_gets(char *str, unsigned int size)
95{
90 for (;;) { 96 for (;;) {
91 char ch; 97 char ch;
92 98
93 // Wait for FIFO to contain something 99 /* Wait for FIFO to contain something */
94 while ((IO_UART1_RFCR & 0x3f) == 0); 100 while ((IO_UART1_RFCR & 0x3f) == 0);
95 101
96 // Read character 102 /* Read character */
97 ch = (char)IO_UART1_DTRR; 103 ch = (char)IO_UART1_DTRR;
98 104
99 // Echo character back 105 /* Echo character back */
100 IO_UART1_DTRR=ch; 106 IO_UART1_DTRR=ch;
101 107
102 // If CR, also echo LF, null-terminate, and return 108 /* If CR, also echo LF, null-terminate, and return */
103 if (ch == '\r') { 109 if (ch == '\r') {
104 IO_UART1_DTRR='\n'; 110 IO_UART1_DTRR='\n';
105 if (size) { 111 if (size) {
@@ -108,7 +114,7 @@ void uartGets(char *str, unsigned int size) {
108 return; 114 return;
109 } 115 }
110 116
111 // Append to buffer 117 /* Append to buffer */
112 if (size) { 118 if (size) {
113 *str++ = ch; 119 *str++ = ch;
114 --size; 120 --size;
@@ -116,17 +122,17 @@ void uartGets(char *str, unsigned int size) {
116 } 122 }
117} 123}
118 124
119int uartPollch(unsigned int ticks) { 125int uart1_pollch(unsigned int ticks)
126{
120 while (ticks--) { 127 while (ticks--) {
121 if (IO_UART1_RFCR & 0x3f) { 128 if (IO_UART1_RFCR & 0x3f) {
122 return IO_UART1_DTRR & 0xff; 129 return IO_UART1_DTRR & 0xff;
123 } 130 }
124 } 131 }
125
126 return -1; 132 return -1;
127} 133}
128 134
129bool uartAvailable(void) 135bool uart1_available(void)
130{ 136{
131 return uart1count > 0; 137 return uart1count > 0;
132} 138}
@@ -134,14 +140,7 @@ bool uartAvailable(void)
134void uart1_heartbeat(void) 140void uart1_heartbeat(void)
135{ 141{
136 char data[5] = {0x11, 0x30, 0x11^0x30, 0x11+0x30, '\0'}; 142 char data[5] = {0x11, 0x30, 0x11^0x30, 0x11+0x30, '\0'};
137 uartPuts(data); 143 uart1_puts(data);
138}
139
140void uartSendData(char* data, int len)
141{
142 int i;
143 for(i=0;i<len;i++)
144 uartPutc(data[i]);
145} 144}
146 145
147bool uart1_getch(char *c) 146bool uart1_getch(char *c)
@@ -161,12 +160,14 @@ void UART1(void)
161{ 160{
162 if (IO_UART1_RFCR & 0x3f) 161 if (IO_UART1_RFCR & 0x3f)
163 { 162 {
163/*
164 if (uart1count >= MAX_UART_BUFFER) 164 if (uart1count >= MAX_UART_BUFFER)
165 panicf("UART1 buffer overflow"); 165 panicf("UART1 buffer overflow");
166*/
166 uart1buffer[uart1write] = IO_UART1_DTRR & 0xff; 167 uart1buffer[uart1write] = IO_UART1_DTRR & 0xff;
167 uart1write = (uart1write+1) % MAX_UART_BUFFER; 168 uart1write = (uart1write+1) % MAX_UART_BUFFER;
168 uart1count++; 169 uart1count++;
169 } 170 }
170 171
171 IO_INTC_IRQ0 = (1<<IRQ_UART1); 172 IO_INTC_IRQ0 = (1<<IRQ_UART1);
172} 173}