37#include <stdnoreturn.h>
41#define FLOAT_PRECISION 100000
81 for (
uint32_t n =
b; n > 1; n--) { c *= a; }
131#if CHPRINTF_USE_FLOAT
175#if CHPRINTF_USE_FLOAT
185 if (buffer !=
NULL) {
189 return (--size == 0);
193 }
else if (chp !=
NULL) {
207 if (buffer !=
NULL) {
222 }
else if (*fmt ==
'+') {
230#if CHPRINTF_USE_FLOAT
237 if (c >=
'0' && c <=
'9') {
239 }
else if (c ==
'*') {
244 width = width * 10 + c;
250 if (c >=
'0' && c <=
'9') {
252#if CHPRINTF_USE_FLOAT
255 }
else if (c ==
'*') {
265 if (c ==
'l' || c ==
'L') {
271 is_long = (c >=
'A') && (c <=
'Z');
282 if ((
s =
va_arg(ap,
char *)) == 0) {
304#if CHPRINTF_USE_FLOAT
340 if ((width -= i) < 0) {
347 if (*
s ==
'-' &&
filler ==
'0') {
353 while (++width != 0);
377void chsnprintf(
char *buffer,
size_t size,
const char *fmt, ...)
static thread_t * printThreadPtr
static char * long_to_string_with_divisor(char *p, long num, unsigned radix, long divisor)
void smchsnprintf(char *buffer, size_t size, const char *fmt,...)
void chvsnprintf(char *buffer, size_t size, const char *fmt, va_list ap)
static char * ltoa(char *p, long num, unsigned radix)
void directchvprintf(BaseSequentialStream *chp, const char *fmt, va_list ap)
void directchprintf(BaseSequentialStream *chp, const char *fmt,...)
void smchvsnprintf(char *buffer, size_t size, const char *fmt, va_list ap)
static void _chvsnprintf(char *buffer, BaseSequentialStream *chp, size_t size, const char *fmt, va_list ap)
System formatted output function.
static THD_WORKING_AREA(waSerialPrint, 512)
void chsnprintf(char *buffer, size_t size, const char *fmt,...)
void chprintf(BaseSequentialStream *lchp, const char *fmt,...)
void chvprintf(BaseSequentialStream *lchp, const char *fmt, va_list ap)
static noreturn void serialPrint(void *arg)
Mini printf-like functionality.
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.