Browse Source

Merge pull request #1 from xxxajk/master

Add missing _P versions of printf family
main
Paul Stoffregen 11 years ago
parent
commit
b5591e75ae
2 changed files with 16 additions and 0 deletions
  1. +6
    -0
      teensy3/avr/pgmspace.h
  2. +10
    -0
      teensy3/mk20dx128.c

+ 6
- 0
teensy3/avr/pgmspace.h View File

#define strspn_P(str, chrs) strspn((str), (chrs)) #define strspn_P(str, chrs) strspn((str), (chrs))
#define strstr_P(a, b) strstr((a), (b)) #define strstr_P(a, b) strstr((a), (b))
#define sprintf_P(s, f, ...) sprintf((s), (f), __VA_ARGS__) #define sprintf_P(s, f, ...) sprintf((s), (f), __VA_ARGS__)
#define vfprintf_P(s, f, ...) vfprintf((s), (f), __VA_ARGS__)
#define printf_P(f, ...) printf((f), __VA_ARGS__)
#define snprintf_P(s, n, f, ...) ((s), (n), (f), __VA_ARGS__)
#define vsprintf_P(s, f, ...) ((s), (f),__VA_ARGS__)
#define vsnprintf_P(s, n, f, ...) ((s), (n), (f),__VA_ARGS__)
#define fprintf_P(s, f, ...) ((s), (f),__VA_ARGS__)


#define pgm_read_byte(addr) (*(const unsigned char *)(addr)) #define pgm_read_byte(addr) (*(const unsigned char *)(addr))
#define pgm_read_word(addr) (*(const unsigned short *)(addr)) #define pgm_read_word(addr) (*(const unsigned short *)(addr))

+ 10
- 0
teensy3/mk20dx128.c View File

return prev; return prev;
} }


__attribute__((weak))
int _read(int file, char *ptr, int len) int _read(int file, char *ptr, int len)
{ {
return 0; return 0;
} }


__attribute__((weak))
int _write(int file, char *ptr, int len) int _write(int file, char *ptr, int len)
{ {
return 0; return 0;
} }


__attribute__((weak))
int _close(int fd) int _close(int fd)
{ {
return -1; return -1;


#include <sys/stat.h> #include <sys/stat.h>


__attribute__((weak))
int _fstat(int fd, struct stat *st) int _fstat(int fd, struct stat *st)
{ {
st->st_mode = S_IFCHR; st->st_mode = S_IFCHR;
return 0; return 0;
} }


__attribute__((weak))
int _isatty(int fd) int _isatty(int fd)
{ {
return 1; return 1;
} }


__attribute__((weak))
int _lseek(int fd, long long offset, int whence) int _lseek(int fd, long long offset, int whence)
{ {
return -1; return -1;
} }


__attribute__((weak))
void _exit(int status) void _exit(int status)
{ {
while (1); while (1);
} }


__attribute__((weak))
void __cxa_pure_virtual() void __cxa_pure_virtual()
{ {
while (1); while (1);
} }


__attribute__((weak))
int __cxa_guard_acquire (int *g) int __cxa_guard_acquire (int *g)
{ {
return 1; return 1;
} }


__attribute__((weak))
void __cxa_guard_release(int *g) void __cxa_guard_release(int *g)
{ {
} }

Loading…
Cancel
Save