[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-libc-dev] Printf thought: BCD buffer?

From: George Spelvin
Subject: [avr-libc-dev] Printf thought: BCD buffer?
Date: 14 Dec 2016 18:16:51 -0500

This is an idea that I don't want distracting me until I'm done with my
current work on printf, so I'm spilling it to the mailing list.

A big limitation on printf right now is the size of the stack buffer to
hold a formatted number.  Adding 64-bit support means doubling that size.

And if ROM space is to be hoarded like silver on a microcontroller,
RAM space is gold.

Would it be worth enlarging the code to store converted numbers in BCD?
When printing hex, phase 1 would consist of counting significant
digits, and phase 2 would do everything.

Typical ATmega flash/SRAM size are

4K      0.25K/0.5K (48A/48PB)
8K      0.5K/1K (88A/88PB)
16K     1K (16A,164A,168A)
32K     2K (32,32[459],AT90CAN32)
64K     4K (64,64[045679],AT90CAN64)
128K    4K/8K/16K (128A,AT90CAN128/128[01]/1284)
256K    8K (256[01])

It seems like SRAM 1/16 the size of program ROM is the most common
configuration.  So 11 bytes of stack could be considered "worth"
88 instructions.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]