瀏覽代碼

Merge pull request #1 from xxxajk/master

Add missing _P versions of printf family
teensy4-core
Paul Stoffregen 11 年之前
父節點
當前提交
b5591e75ae
共有 2 個文件被更改,包括 16 次插入0 次删除
  1. +6
    -0
      teensy3/avr/pgmspace.h
  2. +10
    -0
      teensy3/mk20dx128.c

+ 6
- 0
teensy3/avr/pgmspace.h 查看文件

@@ -45,6 +45,12 @@ typedef uint32_t prog_uint32_t;
#define strspn_P(str, chrs) strspn((str), (chrs))
#define strstr_P(a, b) strstr((a), (b))
#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_word(addr) (*(const unsigned short *)(addr))

+ 10
- 0
teensy3/mk20dx128.c 查看文件

@@ -341,16 +341,19 @@ void * _sbrk(int incr)
return prev;
}

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

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

__attribute__((weak))
int _close(int fd)
{
return -1;
@@ -358,37 +361,44 @@ int _close(int fd)

#include <sys/stat.h>

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

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

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

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

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

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

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

Loading…
取消
儲存