[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [avr-libc-dev] Printf thought: BCD buffer?,
George Spelvin <=