BeRTOS
|
00001 00039 #ifndef DRV_SER_SIMPLE_AVR_H 00040 #define DRV_SER_SIMPLE_AVR_H 00041 00042 #warning FIXME:This module is obsolete, yuo must refactor it. 00043 00044 #if 0 00045 /* For checking which serial driver is linked */ 00046 #define SER_SIMPLE 00047 00048 #include <appconfig.h> 00049 #include <cfg/compiler.h> 00050 00051 00052 #if 0 00053 #if CPU_AVR 00054 typedef uint8_t serstatus_t; 00055 00056 /* Software errors */ 00057 #define SERRF_RXFIFOOVERRUN BV(0) 00058 #define SERRF_RXTIMEOUT BV(5) 00059 #define SERRF_TXTIMEOUT BV(6) 00061 /* Hardware errors */ 00062 #define SERRF_RXSROVERRUN BV(3) 00063 #define SERRF_FRAMEERROR BV(4) 00064 #define SERRF_PARITYERROR BV(7) 00065 #else 00066 #error unknown architecture 00067 #endif 00068 /*\}*/ 00069 00075 enum 00076 { 00077 #if CPU_AVR_ATMEGA64 || CPU_AVR_ATMEGA128 00078 SER_UART0, 00079 SER_UART1, 00080 SER_SPI, 00081 #elif CPU_AVR_ATMEGA103 || CPU_AVR_ATMEGA8 00082 SER_UART0, 00083 SER_SPI, 00084 #else 00085 #error unknown architecture 00086 #endif 00087 SER_CNT 00088 }; 00089 /*\}*/ 00090 #endif 00091 00093 /*\{*/ 00094 #define SER_PARITY_NONE 0 00095 #define SER_PARITY_EVEN 2 00096 #define SER_PARITY_ODD 3 00097 /*\}*/ 00098 00099 00101 struct Serial; 00102 00103 /* Function prototypes */ 00104 extern int _ser_putchar(int c); 00105 extern int _ser_getchar(void); 00106 extern int _ser_getchar_nowait(void); 00107 /* 00108 extern int ser_write(struct Serial *port, const void *buf, size_t len); 00109 extern int ser_read(struct Serial *port, void *buf, size_t size); 00110 00111 extern int ser_printf(struct Serial *port, const char *format, ...) FORMAT(__printf__, 2, 3); 00112 00113 extern int ser_gets(struct Serial *port, char *buf, int size); 00114 extern int ser_gets_echo(struct Serial *port, char *buf, int size, bool echo); 00115 */ 00116 extern int _ser_print(const char *s); 00117 00118 extern void _ser_setbaudrate(unsigned long rate); 00119 extern void _ser_setparity(int parity); 00120 extern void _ser_settimeouts(void); 00121 extern void _ser_setstatus(void); 00122 /* 00123 extern void ser_resync(struct Serial *port, time_t delay); 00124 extern void ser_drain(struct Serial *port); 00125 */ 00126 extern void _ser_purge(void); 00127 extern struct Serial *_ser_open(void); 00128 extern void _ser_close(void); 00129 00135 #define ser_putchar(c, port) _ser_putchar(c) 00136 #define ser_getchar(port) _ser_getchar() 00137 #define ser_getchar_nowait(port) _ser_getchar_nowait() 00138 #define ser_print(port, s) _ser_print(s) 00139 #define ser_setbaudrate(port, y) _ser_setbaudrate(y) 00140 #define ser_setparity(port, par) _ser_setparity(par) 00141 #define ser_settimeouts(port, y, z) _ser_settimeouts() 00142 #define ser_purge(port) _ser_purge() 00143 #define ser_open(port) _ser_open() 00144 #define ser_getstatus(h) 0 00145 #define ser_setstatus(h, x) do {(void)(x);} while(0) 00146 /* \} */ 00147 00148 #endif /* DRV_SER_SIMPLE_AVR_H */ 00149 00150 #endif