| Index: emcore/trunk/console.c |
| — | — | @@ -25,6 +25,7 @@ |
| 26 | 26 | #include "console.h"
|
| 27 | 27 | #include "lcdconsole.h"
|
| 28 | 28 | #include "usb/dbgconsole.h"
|
| | 29 | +#include "uart.h"
|
| 29 | 30 | #include "format.h"
|
| 30 | 31 | #include "thread.h"
|
| 31 | 32 | #include <stdarg.h>
|
| — | — | @@ -46,6 +47,9 @@ |
| 47 | 48 | {
|
| 48 | 49 | mutex_init(&console_mutex);
|
| 49 | 50 | mutex_init(&console_readmutex);
|
| | 51 | +#ifdef HAVE_UART
|
| | 52 | + uart_init();
|
| | 53 | +#endif
|
| 50 | 54 | }
|
| 51 | 55 |
|
| 52 | 56 | void cputc_internal(unsigned int consoles, char string) ICODE_ATTR;
|
| — | — | @@ -57,6 +61,9 @@ |
| 58 | 62 | #ifdef HAVE_USB
|
| 59 | 63 | if (consoles & 2) dbgconsole_putc(string);
|
| 60 | 64 | #endif
|
| | 65 | +#ifdef HAVE_UART
|
| | 66 | + if (consoles & 4) uart_putc(string);
|
| | 67 | +#endif
|
| 61 | 68 | }
|
| 62 | 69 |
|
| 63 | 70 | static int cprfunc(void* ptr, unsigned char letter)
|
| — | — | @@ -114,6 +121,9 @@ |
| 115 | 122 | #ifdef HAVE_USB
|
| 116 | 123 | if (consoles & 2) dbgconsole_puts(string);
|
| 117 | 124 | #endif
|
| | 125 | +#ifdef HAVE_UART
|
| | 126 | + if (consoles & 4) uart_puts(string);
|
| | 127 | +#endif
|
| 118 | 128 | mutex_unlock(&console_mutex);
|
| 119 | 129 | }
|
| 120 | 130 |
|
| — | — | @@ -126,6 +136,9 @@ |
| 127 | 137 | #ifdef HAVE_USB
|
| 128 | 138 | if (consoles & 2) dbgconsole_write(string, length);
|
| 129 | 139 | #endif
|
| | 140 | +#ifdef HAVE_UART
|
| | 141 | + if (consoles & 4) uart_write(string, length);
|
| | 142 | +#endif
|
| 130 | 143 | mutex_unlock(&console_mutex);
|
| 131 | 144 | }
|
| 132 | 145 |
|
| — | — | @@ -145,6 +158,9 @@ |
| 146 | 159 | #ifdef HAVE_USB
|
| 147 | 160 | if ((consoles & 2) && (result = dbgconsole_getc(timeout)) != -1) return result;
|
| 148 | 161 | #endif
|
| | 162 | +#ifdef HAVE_UART
|
| | 163 | + if ((consoles & 4) && (result = uart_getc(timeout)) != -1) return result;
|
| | 164 | +#endif
|
| 149 | 165 | mutex_unlock(&console_readmutex);
|
| 150 | 166 | }
|
| 151 | 167 |
|
| — | — | @@ -155,6 +171,9 @@ |
| 156 | 172 | #ifdef HAVE_USB
|
| 157 | 173 | if ((consoles & 2) && (result = dbgconsole_read(buffer, length, timeout))) return result;
|
| 158 | 174 | #endif
|
| | 175 | +#ifdef HAVE_UART
|
| | 176 | + if ((consoles & 2) && (result = uart_read(buffer, length, timeout))) return result;
|
| | 177 | +#endif
|
| 159 | 178 | mutex_unlock(&console_readmutex);
|
| 160 | 179 | }
|
| 161 | 180 |
|
| — | — | @@ -164,13 +183,23 @@ |
| 165 | 184 | mutex_lock(&console_readmutex, TIMEOUT_BLOCK);
|
| 166 | 185 | while (length)
|
| 167 | 186 | {
|
| | 187 | + if (
|
| 168 | 188 | #ifdef HAVE_USB
|
| 169 | | - if (length && (consoles & 2) && (result = dbgconsole_read(buffer, length, timeout)))
|
| | 189 | + ((consoles & 2) && (result = dbgconsole_read(buffer, length, timeout)))
|
| | 190 | +#else
|
| | 191 | + false
|
| | 192 | +#endif
|
| | 193 | + ||
|
| | 194 | +#ifdef HAVE_UART
|
| | 195 | + ((consoles & 4) && (result = uart_read(buffer, length, timeout)))
|
| | 196 | +#else
|
| | 197 | + false
|
| | 198 | +#endif
|
| | 199 | + )
|
| 170 | 200 | {
|
| 171 | 201 | buffer = &buffer[result];
|
| 172 | 202 | length -= result;
|
| 173 | 203 | }
|
| 174 | | -#endif
|
| 175 | 204 | }
|
| 176 | 205 | mutex_unlock(&console_readmutex);
|
| 177 | 206 | }
|
| Index: emcore/trunk/target/ipodnano3g/s5l8702.h |
| — | — | @@ -767,6 +767,17 @@ |
| 768 | 768 | #define WHEELTX (*((uint32_t volatile*)(0x3C20001C))) |
| 769 | 769 | |
| 770 | 770 | |
| | 771 | +/////UART///// |
| | 772 | +#define ULCON (*((uint32_t volatile*)0x3cc00000))
|
| | 773 | +#define UCON (*((uint32_t volatile*)0x3cc00004))
|
| | 774 | +#define UFCON (*((uint32_t volatile*)0x3cc00008))
|
| | 775 | +#define UMCON (*((uint32_t volatile*)0x3cc0000c))
|
| | 776 | +#define UFSTAT (*((uint32_t volatile*)0x3cc00018))
|
| | 777 | +#define UTXH (*((uint8_t volatile*)0x3cc00020))
|
| | 778 | +#define URXH (*((uint8_t volatile*)0x3cc00024))
|
| | 779 | +#define UBRDIV (*((uint32_t volatile*)0x3cc00028))
|
| | 780 | + |
| | 781 | + |
| 771 | 782 | /////CLOCK GATES///// |
| 772 | 783 | #define CLOCKGATE_LCD 1 |
| 773 | 784 | #define CLOCKGATE_USB_1 2 |
| Index: emcore/trunk/target/ipodnano3g/target.h |
| — | — | @@ -60,6 +60,8 @@ |
| 61 | 61 |
|
| 62 | 62 | #define HAVE_BOOTFLASH
|
| 63 | 63 |
|
| | 64 | +#define HAVE_UART
|
| | 65 | +
|
| 64 | 66 | //#define HAVE_STORAGE
|
| 65 | 67 | //#define HAVE_FLASH_STORAGE
|
| 66 | 68 | //#define HAVE_STORAGE_FLUSH
|
| Index: emcore/trunk/target/ipodclassic/target.h |
| — | — | @@ -61,6 +61,8 @@ |
| 62 | 62 |
|
| 63 | 63 | #define HAVE_BOOTFLASH
|
| 64 | 64 |
|
| | 65 | +#define HAVE_UART
|
| | 66 | +
|
| 65 | 67 | #define HAVE_STORAGE
|
| 66 | 68 | #define HAVE_HDD_STORAGE
|
| 67 | 69 | #define HAVE_STORAGE_FLUSH
|
| Index: emcore/trunk/SOURCES |
| — | — | @@ -50,6 +50,7 @@ |
| 51 | 51 | target/ipodnano3g/clickwheel.c
|
| 52 | 52 | target/ipodnano3g/spi.c
|
| 53 | 53 | target/ipodnano3g/targetinit.c
|
| | 54 | +target/ipodnano3g/uart.c
|
| 54 | 55 | usb/synopsysotg.c
|
| 55 | 56 | #endif
|
| 56 | 57 |
|