AVR-LibC  2.3.0git
Standard C library for AVR-GCC
 

AVR-LibC Documen­tation

AVR-LibC Development Pages

Main Page

User Manual

Library Refe­rence

FAQ

Example Projects

File List

Index

Loading...
Searching...
No Matches
flash.h File Reference

Go to the source code of this file.

Macros

Macros
#define FSTR(str)   ({ static const __flash char c[] = (str); &c[0]; })
 
#define FXSTR(str)   ({ static const __flashx char c[] = (str); &c[0]; })
 
#define FLIT(str)   ((const __flash char[]) { str })
 
#define FXLIT(str)   ((const __flashx char[]) { str })
 
Convenience macros for functions from stdio.h, that allocate the format string with FSTR
#define vfprintf_FSTR(stream, fmt, ap)   vfprintf_F(stream, FSTR(fmt), ap)
 
#define printf_FSTR(fmt, ...)   printf_F(FSTR(fmt), ##__VA_ARGS__)
 
#define sprintf_FSTR(s, fmt, ...)   sprintf_F(s, FSTR(fmt), ##__VA_ARGS__)
 
#define snprintf_FSTR(s, n, fmt, ...)   snprintf_F(s, n, FSTR(fmt), ##__VA_ARGS__)
 
#define vsprintf_FSTR(s, fmt, ap)   vsprintf_F(s, FSTR(fmt), ap)
 
#define vsnprintf_FSTR(s, n, fmt, ap)   vsnprintf_F(s, n, FSTR(fmt), ap);
 
#define fprintf_FSTR(stream, fmt, ...)   fprintf_F(stream, FSTR(fmt), ##__VA_ARGS__)
 
#define fputs_FSTR(str, stream)   fputs_F(FSTR(str), stream);
 
#define puts_FSTR(str)   puts_F(FSTR(str));
 
#define vfscanf_FSTR(stream, fmt, ap)   vfscanf_F(stream, FSTR(fmt), ap);
 
#define fscanf_FSTR(stream, fmt, ...)   fscanf_F(stream, FSTR(fmt), ##__VA_ARGS__)
 
#define scanf_FSTR(fmt, ...)   scanf_F(FSTR(fmt), ##__VA_ARGS__)
 
#define sscanf_FSTR(buf, fmt, ...)   sscanf_F(buf, FSTR(fmt), ##__VA_ARGS__)
 

Functions

Functions from string.h, but one argument is in address-space __flash
const __flash void * memchr_F (const __flash void *, int, size_t)
 
int memcmp_F (const void *, const __flash void *, size_t)
 
void * memccpy_F (void *, const __flash void *, int val, size_t)
 
void * memcpy_F (void *, const __flash void *, size_t)
 
void * memmem_F (const void *, size_t, const __flash void *, size_t)
 
const __flash void * memrchr_F (const __flash void *, int val, size_t len)
 
static size_t strlen_F (const __flash char *src)
 
char * strcat_F (char *, const __flash char *)
 
const __flash char * strchr_F (const __flash char *, int val)
 
const __flash char * strchrnul_F (const __flash char *, int val)
 
int strcmp_F (const char *, const __flash char *)
 
char * strcpy_F (char *, const __flash char *)
 
char * stpcpy_F (char *, const __flash char *)
 
int strcasecmp_F (const char *, const __flash char *)
 
char * strcasestr_F (const char *, const __flash char *)
 
size_t strcspn_F (const char *s, const __flash char *reject)
 
size_t strlcat_F (char *, const __flash char *, size_t)
 
size_t strlcpy_F (char *, const __flash char *, size_t)
 
size_t strnlen_F (const __flash char *, size_t)
 
int strncmp_F (const char *, const __flash char *, size_t)
 
int strncasecmp_F (const char *, const __flash char *, size_t)
 
char * strncat_F (char *, const __flash char *, size_t)
 
char * strncpy_F (char *, const __flash char *, size_t)
 
char * strpbrk_F (const char *, const __flash char *accept)
 
const __flash char * strrchr_F (const __flash char *, int val)
 
char * strsep_F (char **sp, const __flash char *delim)
 
size_t strspn_F (const char *s, const __flash char *accept)
 
char * strstr_F (const char *, const __flash char *)
 
char * strtok_F (char *s, const __flash char *delim)
 
char * strtok_rF (char *s, const __flash char *delim, char **last)
 
Functions from string.h, but one argument is in 24-bit address-space __flashx
void * memcpy_FX (void *dest, const __flashx void *src, size_t len)
 
int memcmp_FX (const void *s1, const __flashx void *s2, size_t)
 
size_t strlen_FX (const __flashx char *src)
 
size_t strnlen_FX (const __flashx char *src, size_t len)
 
char * strcpy_FX (char *dest, const __flashx char *src)
 
char * stpcpy_FX (char *dest, const __flashx char *src)
 
char * strncpy_FX (char *dest, const __flashx char *src, size_t len)
 
char * strcat_FX (char *dest, const __flashx char *src)
 
size_t strlcat_FX (char *dst, const __flashx char *src, size_t siz)
 
char * strncat_FX (char *dest, const __flashx char *src, size_t len)
 
int strcmp_FX (const char *s1, const __flashx char *s2)
 
int strncmp_FX (const char *s1, const __flashx char *s2, size_t n)
 
int strcasecmp_FX (const char *s1, const __flashx char *s2)
 
int strncasecmp_FX (const char *s1, const __flashx char *s2, size_t n)
 
const __flashx char * strchr_FX (const __flashx char *s, int val)
 
char * strstr_FX (const char *s1, const __flashx char *s2)
 
size_t strlcpy_FX (char *, const __flashx char *, size_t)
 
Functions from stdio.h, but with a format string in address-space __flash
int vfprintf_F (FILE *stream, const __flash char *fmt, va_list ap)
 
int printf_F (const __flash char *fmt,...)
 
int sprintf_F (char *s, const __flash char *fmt,...)
 
int snprintf_F (char *s, size_t n, const __flash char *fmt,...)
 
int vsprintf_F (char *s, const __flash char *fmt, va_list ap)
 
int vsnprintf_F (char *s, size_t n, const __flash char *fmt, va_list ap)
 
int fprintf_F (FILE *stream, const __flash char *fmt,...)
 
int fputs_F (const __flash char *str, FILE *stream)
 
int puts_F (const __flash char *str)
 
int vfscanf_F (FILE *stream, const __flash char *fmt, va_list ap)
 
int fscanf_F (FILE *stream, const __flash char *fmt,...)
 
int scanf_F (const __flash char *fmt,...)
 
int sscanf_F (const char *buf, const __flash char *fmt,...)
 
More efficient reading of 64-bit values from __flash and __flashx
static uint64_t flash_read_u64 (const __flash uint64_t *addr)
 
static int64_t flash_read_i64 (const __flash int64_t *addr)
 
static double flash_read_double (const __flash double *addr)
 
static long double flash_read_long_double (const __flash long double *addr)
 
static uint64_t flashx_read_u64 (const __flashx uint64_t *addr)
 
static int64_t flashx_read_i64 (const __flashx int64_t *addr)
 
static double flashx_read_double (const __flashx double *addr)
 
static long double flashx_read_long_double (const __flashx long double *addr)
 

Variables

AVR Named Address-Spaces
 __flash
 
 __flashx
 
 __memx