# 1 "uart_stream.c" # 1 "/home/ondra/git/avr-lib/examples//" # 1 "" # 1 "" # 1 "uart_stream.c" # 1 "/usr/avr/include/avr/io.h" 1 3 # 99 "/usr/avr/include/avr/io.h" 3 # 1 "/usr/avr/include/avr/sfr_defs.h" 1 3 # 126 "/usr/avr/include/avr/sfr_defs.h" 3 # 1 "/usr/avr/include/inttypes.h" 1 3 # 37 "/usr/avr/include/inttypes.h" 3 # 1 "/usr/lib/gcc/avr/4.9.2/include/stdint.h" 1 3 4 # 9 "/usr/lib/gcc/avr/4.9.2/include/stdint.h" 3 4 # 1 "/usr/avr/include/stdint.h" 1 3 4 # 122 "/usr/avr/include/stdint.h" 3 4 typedef signed int int8_t __attribute__((__mode__(__QI__))); typedef unsigned int uint8_t __attribute__((__mode__(__QI__))); typedef signed int int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int uint16_t __attribute__ ((__mode__ (__HI__))); typedef signed int int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int uint32_t __attribute__ ((__mode__ (__SI__))); typedef signed int int64_t __attribute__((__mode__(__DI__))); typedef unsigned int uint64_t __attribute__((__mode__(__DI__))); # 143 "/usr/avr/include/stdint.h" 3 4 typedef int16_t intptr_t; typedef uint16_t uintptr_t; # 160 "/usr/avr/include/stdint.h" 3 4 typedef int8_t int_least8_t; typedef uint8_t uint_least8_t; typedef int16_t int_least16_t; typedef uint16_t uint_least16_t; typedef int32_t int_least32_t; typedef uint32_t uint_least32_t; typedef int64_t int_least64_t; typedef uint64_t uint_least64_t; # 214 "/usr/avr/include/stdint.h" 3 4 typedef int8_t int_fast8_t; typedef uint8_t uint_fast8_t; typedef int16_t int_fast16_t; typedef uint16_t uint_fast16_t; typedef int32_t int_fast32_t; typedef uint32_t uint_fast32_t; typedef int64_t int_fast64_t; typedef uint64_t uint_fast64_t; # 274 "/usr/avr/include/stdint.h" 3 4 typedef int64_t intmax_t; typedef uint64_t uintmax_t; # 10 "/usr/lib/gcc/avr/4.9.2/include/stdint.h" 2 3 4 # 38 "/usr/avr/include/inttypes.h" 2 3 # 77 "/usr/avr/include/inttypes.h" 3 typedef int32_t int_farptr_t; typedef uint32_t uint_farptr_t; # 127 "/usr/avr/include/avr/sfr_defs.h" 2 3 # 100 "/usr/avr/include/avr/io.h" 2 3 # 248 "/usr/avr/include/avr/io.h" 3 # 1 "/usr/avr/include/avr/iom328p.h" 1 3 # 249 "/usr/avr/include/avr/io.h" 2 3 # 534 "/usr/avr/include/avr/io.h" 3 # 1 "/usr/avr/include/avr/portpins.h" 1 3 # 535 "/usr/avr/include/avr/io.h" 2 3 # 1 "/usr/avr/include/avr/common.h" 1 3 # 537 "/usr/avr/include/avr/io.h" 2 3 # 1 "/usr/avr/include/avr/version.h" 1 3 # 539 "/usr/avr/include/avr/io.h" 2 3 # 1 "/usr/avr/include/avr/fuse.h" 1 3 # 239 "/usr/avr/include/avr/fuse.h" 3 typedef struct { unsigned char low; unsigned char high; unsigned char extended; } __fuse_t; # 546 "/usr/avr/include/avr/io.h" 2 3 # 1 "/usr/avr/include/avr/lock.h" 1 3 # 549 "/usr/avr/include/avr/io.h" 2 3 # 6 "uart_stream.c" 2 # 1 "/usr/avr/include/util/delay.h" 1 3 # 43 "/usr/avr/include/util/delay.h" 3 # 1 "/usr/avr/include/util/delay_basic.h" 1 3 # 40 "/usr/avr/include/util/delay_basic.h" 3 static inline void _delay_loop_1(uint8_t __count) __attribute__((always_inline)); static inline void _delay_loop_2(uint16_t __count) __attribute__((always_inline)); # 80 "/usr/avr/include/util/delay_basic.h" 3 void _delay_loop_1(uint8_t __count) { __asm__ volatile ( "1: dec %0" "\n\t" "brne 1b" : "=r" (__count) : "0" (__count) ); } # 102 "/usr/avr/include/util/delay_basic.h" 3 void _delay_loop_2(uint16_t __count) { __asm__ volatile ( "1: sbiw %0,1" "\n\t" "brne 1b" : "=w" (__count) : "0" (__count) ); } # 44 "/usr/avr/include/util/delay.h" 2 3 # 1 "/usr/avr/include/math.h" 1 3 # 127 "/usr/avr/include/math.h" 3 extern double cos(double __x) __attribute__((__const__)); extern double sin(double __x) __attribute__((__const__)); extern double tan(double __x) __attribute__((__const__)); extern double fabs(double __x) __attribute__((__const__)); extern double fmod(double __x, double __y) __attribute__((__const__)); # 168 "/usr/avr/include/math.h" 3 extern double modf(double __x, double *__iptr); extern float modff (float __x, float *__iptr); extern double sqrt(double __x) __attribute__((__const__)); extern float sqrtf (float) __attribute__((__const__)); extern double cbrt(double __x) __attribute__((__const__)); # 194 "/usr/avr/include/math.h" 3 extern double hypot (double __x, double __y) __attribute__((__const__)); extern double square(double __x) __attribute__((__const__)); extern double floor(double __x) __attribute__((__const__)); extern double ceil(double __x) __attribute__((__const__)); # 234 "/usr/avr/include/math.h" 3 extern double frexp(double __x, int *__pexp); extern double ldexp(double __x, int __exp) __attribute__((__const__)); extern double exp(double __x) __attribute__((__const__)); extern double cosh(double __x) __attribute__((__const__)); extern double sinh(double __x) __attribute__((__const__)); extern double tanh(double __x) __attribute__((__const__)); extern double acos(double __x) __attribute__((__const__)); extern double asin(double __x) __attribute__((__const__)); extern double atan(double __x) __attribute__((__const__)); # 298 "/usr/avr/include/math.h" 3 extern double atan2(double __y, double __x) __attribute__((__const__)); extern double log(double __x) __attribute__((__const__)); extern double log10(double __x) __attribute__((__const__)); extern double pow(double __x, double __y) __attribute__((__const__)); extern int isnan(double __x) __attribute__((__const__)); # 333 "/usr/avr/include/math.h" 3 extern int isinf(double __x) __attribute__((__const__)); __attribute__((__const__)) static inline int isfinite (double __x) { unsigned char __exp; __asm__ ( "mov %0, %C1 \n\t" "lsl %0 \n\t" "mov %0, %D1 \n\t" "rol %0 " : "=r" (__exp) : "r" (__x) ); return __exp != 0xff; } __attribute__((__const__)) static inline double copysign (double __x, double __y) { __asm__ ( "bst %D2, 7 \n\t" "bld %D0, 7 " : "=r" (__x) : "0" (__x), "r" (__y) ); return __x; } # 376 "/usr/avr/include/math.h" 3 extern int signbit (double __x) __attribute__((__const__)); extern double fdim (double __x, double __y) __attribute__((__const__)); # 392 "/usr/avr/include/math.h" 3 extern double fma (double __x, double __y, double __z) __attribute__((__const__)); extern double fmax (double __x, double __y) __attribute__((__const__)); extern double fmin (double __x, double __y) __attribute__((__const__)); extern double trunc (double __x) __attribute__((__const__)); # 426 "/usr/avr/include/math.h" 3 extern double round (double __x) __attribute__((__const__)); # 439 "/usr/avr/include/math.h" 3 extern long lround (double __x) __attribute__((__const__)); # 453 "/usr/avr/include/math.h" 3 extern long lrint (double __x) __attribute__((__const__)); # 45 "/usr/avr/include/util/delay.h" 2 3 # 84 "/usr/avr/include/util/delay.h" 3 static inline void _delay_us(double __us) __attribute__((always_inline)); static inline void _delay_ms(double __ms) __attribute__((always_inline)); # 141 "/usr/avr/include/util/delay.h" 3 void _delay_ms(double __ms) { double __tmp ; # 166 "/usr/avr/include/util/delay.h" 3 uint16_t __ticks; __tmp = ((16000000UL) / 4e3) * __ms; if (__tmp < 1.0) __ticks = 1; else if (__tmp > 65535) { __ticks = (uint16_t) (__ms * 10.0); while(__ticks) { _delay_loop_2(((16000000UL) / 4e3) / 10); __ticks --; } return; } else __ticks = (uint16_t)__tmp; _delay_loop_2(__ticks); } # 223 "/usr/avr/include/util/delay.h" 3 void _delay_us(double __us) { double __tmp ; # 248 "/usr/avr/include/util/delay.h" 3 uint8_t __ticks; double __tmp2 ; __tmp = ((16000000UL) / 3e6) * __us; __tmp2 = ((16000000UL) / 4e6) * __us; if (__tmp < 1.0) __ticks = 1; else if (__tmp2 > 65535) { _delay_ms(__us / 1000.0); } else if (__tmp > 255) { uint16_t __ticks=(uint16_t)__tmp2; _delay_loop_2(__ticks); return; } else __ticks = (uint8_t)__tmp; _delay_loop_1(__ticks); } # 7 "uart_stream.c" 2 # 1 "/usr/avr/include/avr/pgmspace.h" 1 3 # 87 "/usr/avr/include/avr/pgmspace.h" 3 # 1 "/usr/lib/gcc/avr/4.9.2/include/stddef.h" 1 3 4 # 212 "/usr/lib/gcc/avr/4.9.2/include/stddef.h" 3 4 typedef unsigned int size_t; # 88 "/usr/avr/include/avr/pgmspace.h" 2 3 # 1064 "/usr/avr/include/avr/pgmspace.h" 3 extern const void * memchr_P(const void *, int __val, size_t __len) __attribute__((__const__)); extern int memcmp_P(const void *, const void *, size_t) __attribute__((__pure__)); extern void *memccpy_P(void *, const void *, int __val, size_t); extern void *memcpy_P(void *, const void *, size_t); extern void *memmem_P(const void *, size_t, const void *, size_t) __attribute__((__pure__)); extern const void * memrchr_P(const void *, int __val, size_t __len) __attribute__((__const__)); extern char *strcat_P(char *, const char *); extern const char * strchr_P(const char *, int __val) __attribute__((__const__)); extern const char * strchrnul_P(const char *, int __val) __attribute__((__const__)); extern int strcmp_P(const char *, const char *) __attribute__((__pure__)); extern char *strcpy_P(char *, const char *); extern int strcasecmp_P(const char *, const char *) __attribute__((__pure__)); extern char *strcasestr_P(const char *, const char *) __attribute__((__pure__)); extern size_t strcspn_P(const char *__s, const char * __reject) __attribute__((__pure__)); extern size_t strlcat_P (char *, const char *, size_t ); extern size_t strlcpy_P (char *, const char *, size_t ); extern size_t __strlen_P(const char *) __attribute__((__const__)); extern size_t strnlen_P(const char *, size_t) __attribute__((__const__)); extern int strncmp_P(const char *, const char *, size_t) __attribute__((__pure__)); extern int strncasecmp_P(const char *, const char *, size_t) __attribute__((__pure__)); extern char *strncat_P(char *, const char *, size_t); extern char *strncpy_P(char *, const char *, size_t); extern char *strpbrk_P(const char *__s, const char * __accept) __attribute__((__pure__)); extern const char * strrchr_P(const char *, int __val) __attribute__((__const__)); extern char *strsep_P(char **__sp, const char * __delim); extern size_t strspn_P(const char *__s, const char * __accept) __attribute__((__pure__)); extern char *strstr_P(const char *, const char *) __attribute__((__pure__)); extern char *strtok_P(char *__s, const char * __delim); extern char *strtok_rP(char *__s, const char * __delim, char **__last); extern size_t strlen_PF (uint_farptr_t src) __attribute__((__const__)); extern size_t strnlen_PF (uint_farptr_t src, size_t len) __attribute__((__const__)); extern void *memcpy_PF (void *dest, uint_farptr_t src, size_t len); extern char *strcpy_PF (char *dest, uint_farptr_t src); extern char *strncpy_PF (char *dest, uint_farptr_t src, size_t len); extern char *strcat_PF (char *dest, uint_farptr_t src); extern size_t strlcat_PF (char *dst, uint_farptr_t src, size_t siz); extern char *strncat_PF (char *dest, uint_farptr_t src, size_t len); extern int strcmp_PF (const char *s1, uint_farptr_t s2) __attribute__((__pure__)); extern int strncmp_PF (const char *s1, uint_farptr_t s2, size_t n) __attribute__((__pure__)); extern int strcasecmp_PF (const char *s1, uint_farptr_t s2) __attribute__((__pure__)); extern int strncasecmp_PF (const char *s1, uint_farptr_t s2, size_t n) __attribute__((__pure__)); extern char *strstr_PF (const char *s1, uint_farptr_t s2); extern size_t strlcpy_PF (char *dst, uint_farptr_t src, size_t siz); extern int memcmp_PF(const void *, uint_farptr_t, size_t) __attribute__((__pure__)); __attribute__((__always_inline__)) static __inline__ size_t strlen_P(const char * s); static __inline__ size_t strlen_P(const char *s) { return __builtin_constant_p(__builtin_strlen(s)) ? __builtin_strlen(s) : __strlen_P(s); } # 8 "uart_stream.c" 2 # 1 "/usr/avr/include/avr/interrupt.h" 1 3 # 9 "uart_stream.c" 2 # 1 "/usr/avr/include/stdlib.h" 1 3 # 47 "/usr/avr/include/stdlib.h" 3 # 1 "/usr/lib/gcc/avr/4.9.2/include/stddef.h" 1 3 4 # 324 "/usr/lib/gcc/avr/4.9.2/include/stddef.h" 3 4 typedef int wchar_t; # 48 "/usr/avr/include/stdlib.h" 2 3 # 68 "/usr/avr/include/stdlib.h" 3 typedef struct { int quot; int rem; } div_t; typedef struct { long quot; long rem; } ldiv_t; typedef int (*__compar_fn_t)(const void *, const void *); # 114 "/usr/avr/include/stdlib.h" 3 extern void abort(void) __attribute__((__noreturn__)); extern int abs(int __i) __attribute__((__const__)); # 128 "/usr/avr/include/stdlib.h" 3 extern long labs(long __i) __attribute__((__const__)); # 151 "/usr/avr/include/stdlib.h" 3 extern void *bsearch(const void *__key, const void *__base, size_t __nmemb, size_t __size, int (*__compar)(const void *, const void *)); extern div_t div(int __num, int __denom) __asm__("__divmodhi4") __attribute__((__const__)); extern ldiv_t ldiv(long __num, long __denom) __asm__("__divmodsi4") __attribute__((__const__)); # 183 "/usr/avr/include/stdlib.h" 3 extern void qsort(void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar); # 216 "/usr/avr/include/stdlib.h" 3 extern long strtol(const char *__nptr, char **__endptr, int __base); # 250 "/usr/avr/include/stdlib.h" 3 extern unsigned long strtoul(const char *__nptr, char **__endptr, int __base); # 262 "/usr/avr/include/stdlib.h" 3 extern long atol(const char *__s) __attribute__((__pure__)); # 274 "/usr/avr/include/stdlib.h" 3 extern int atoi(const char *__s) __attribute__((__pure__)); # 286 "/usr/avr/include/stdlib.h" 3 extern void exit(int __status) __attribute__((__noreturn__)); # 298 "/usr/avr/include/stdlib.h" 3 extern void *malloc(size_t __size) __attribute__((__malloc__)); extern void free(void *__ptr); extern size_t __malloc_margin; extern char *__malloc_heap_start; extern char *__malloc_heap_end; extern void *calloc(size_t __nele, size_t __size) __attribute__((__malloc__)); # 346 "/usr/avr/include/stdlib.h" 3 extern void *realloc(void *__ptr, size_t __size) __attribute__((__malloc__)); extern double strtod(const char *__nptr, char **__endptr); extern double atof(const char *__nptr); # 372 "/usr/avr/include/stdlib.h" 3 extern int rand(void); extern void srand(unsigned int __seed); extern int rand_r(unsigned long *__ctx); # 417 "/usr/avr/include/stdlib.h" 3 extern __inline__ __attribute__((__gnu_inline__)) char *itoa (int __val, char *__s, int __radix) { if (!__builtin_constant_p (__radix)) { extern char *__itoa (int, char *, int); return __itoa (__val, __s, __radix); } else if (__radix < 2 || __radix > 36) { *__s = 0; return __s; } else { extern char *__itoa_ncheck (int, char *, unsigned char); return __itoa_ncheck (__val, __s, __radix); } } # 462 "/usr/avr/include/stdlib.h" 3 extern __inline__ __attribute__((__gnu_inline__)) char *ltoa (long __val, char *__s, int __radix) { if (!__builtin_constant_p (__radix)) { extern char *__ltoa (long, char *, int); return __ltoa (__val, __s, __radix); } else if (__radix < 2 || __radix > 36) { *__s = 0; return __s; } else { extern char *__ltoa_ncheck (long, char *, unsigned char); return __ltoa_ncheck (__val, __s, __radix); } } # 505 "/usr/avr/include/stdlib.h" 3 extern __inline__ __attribute__((__gnu_inline__)) char *utoa (unsigned int __val, char *__s, int __radix) { if (!__builtin_constant_p (__radix)) { extern char *__utoa (unsigned int, char *, int); return __utoa (__val, __s, __radix); } else if (__radix < 2 || __radix > 36) { *__s = 0; return __s; } else { extern char *__utoa_ncheck (unsigned int, char *, unsigned char); return __utoa_ncheck (__val, __s, __radix); } } # 547 "/usr/avr/include/stdlib.h" 3 extern __inline__ __attribute__((__gnu_inline__)) char *ultoa (unsigned long __val, char *__s, int __radix) { if (!__builtin_constant_p (__radix)) { extern char *__ultoa (unsigned long, char *, int); return __ultoa (__val, __s, __radix); } else if (__radix < 2 || __radix > 36) { *__s = 0; return __s; } else { extern char *__ultoa_ncheck (unsigned long, char *, unsigned char); return __ultoa_ncheck (__val, __s, __radix); } } # 579 "/usr/avr/include/stdlib.h" 3 extern long random(void); extern void srandom(unsigned long __seed); extern long random_r(unsigned long *__ctx); # 638 "/usr/avr/include/stdlib.h" 3 extern char *dtostre(double __val, char *__s, unsigned char __prec, unsigned char __flags); # 655 "/usr/avr/include/stdlib.h" 3 extern char *dtostrf(double __val, signed char __width, unsigned char __prec, char *__s); # 672 "/usr/avr/include/stdlib.h" 3 extern int atexit(void (*)(void)); extern int system (const char *); extern char *getenv (const char *); # 11 "uart_stream.c" 2 # 1 "lib/uart.h" 1 # 13 "lib/uart.h" # 1 "/usr/lib/gcc/avr/4.9.2/include/stdbool.h" 1 3 4 # 14 "lib/uart.h" 2 # 1 "lib/stream.h" 1 # 12 "lib/stream.h" typedef struct { void (*tx) (uint8_t b); uint8_t (*rx) (void); } STREAM; void put_str(const STREAM *p, char* str); void put_u8(const STREAM *p, const uint8_t num); void put_i8(const STREAM *p, const int8_t num); void put_u16(const STREAM *p, const uint16_t num); void put_i16(const STREAM *p, const int16_t num); void put_u32(const STREAM *p, const uint32_t num); void put_i32(const STREAM *p, const int32_t num); void put_u16f(const STREAM *p, const uint16_t num, const uint8_t places); void put_i16f(const STREAM *p, const int16_t num, const uint8_t places); void put_u32f(const STREAM *p, const uint32_t num, const uint8_t places); void put_i32f(const STREAM *p, const int32_t num, const uint8_t places); # 17 "lib/uart.h" 2 extern STREAM* uart; void _uart_init_do(uint16_t ubrr); # 36 "lib/uart.h" void uart_isr_rx(_Bool enable); void uart_isr_tx(_Bool enable); void uart_isr_dre(_Bool enable); uint8_t uart_rx(); void uart_tx(uint8_t data); void uart_flush(); void uart_puts(const char* str); void uart_puts_pgm(const char* str); void uart_putu(const uint8_t num); void uart_putn(const int8_t num); void uart_puti(const int16_t num, const uint8_t places); void uart_putiu(const uint16_t num, const uint8_t places); void uart_putl(const int32_t num, const uint8_t places); void uart_putlu(const uint32_t num, const uint8_t places); void uart_nl(); # 13 "uart_stream.c" 2 void main() { _uart_init_do(16000000UL / 16 / (9600) - 1); put_str(uart, "hello"); while(1); }