diff --git a/examples/Makefile b/examples/Makefile index f050b2b..0f649d2 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -114,7 +114,7 @@ clean: # Clean all trash purge: - rm -f *.elf *.hex *.obj *.o *.d *.eep *.lst *.lss *.sym *.map *~ + rm -f *.elf *.hex *.obj *.o *.d *.eep *.lst *.lss *.sym *.map *~ *.pre ## === avrdude === diff --git a/examples/uart_stream.pre b/examples/uart_stream.pre deleted file mode 100644 index b598aff..0000000 --- a/examples/uart_stream.pre +++ /dev/null @@ -1,885 +0,0 @@ -# 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); -}