PATCH: Framebuffer for C123 and C155
Christian Vogel
vogelchr at vogel.cx
Mon Oct 11 22:50:53 CEST 2010
Two things I did want to mention, but forgot to write in my first
email are:
(1) For future work, it should be attempted to call the
synchronisation of the framebuffer memory and the LC display
in a low-priority task or timer so that the fb_flush() method
that blocks on updates is no longer necessary
(2) The price we pay for having the framebuffer, in terms of object-size,
is detailed below, by comparing the original version of hello_world
with the "new and improved" framebuffer.
Comparing hello world before/after transition to framebuffer code.
For hello world on E88 (C123) (with HelvR08 and HelvB14 fonts):
.text +1696 byte (grows from 0x3fd0 - 0x3930)
.rodata +944 byte (0xc76 - 0x1026)
.data +80 byte (0x15c - 0x10c)
.bss +860 byte (0x4470 - 0x47cc)
For hello world on E99 (C155) (w/ HelvR08, HelvB14):
.text +1344 byte
.rodata +1088 byte
.data +80 byte
.bss +6564 byte
Generally .rodata is mostly due to font data, .bss is our
in-ram framebuffer. .text increase is due to the code for
character- and box drawing.
Individual sizes:
$ /usr/opt/arm-gcc/bin/arm-elf-size *.o
text data bss dec hex filename
1873 0 0 1873 751 fb_bw8.o (C123 )
1764 0 0 1764 6e4 fb_rgb332.o ( C155)
706 72 6568 7346 1cb2 fb_ssd1783.o ( C155)
328 72 864 1264 4f0 fb_st7558.o (C123 )
76 8 0 84 54 font.o (C123, C155)
0 0 0 0 0 framebuffer.o (C123, C155)
1804 0 0 1804 70c helvB14.o (C123, C155)
1212 0 0 1212 4bc helvR08.o (C128, C155)
(Currently unused, optional further fonts:)
60 56 0 116 74 fb_dummy.o
1220 0 0 1220 4c4 helvB08.o
3548 0 0 3548 ddc helvB24.o
3480 0 0 3480 d98 helvR24.o
1116 0 0 1116 45c 4x6.o
1188 0 0 1188 4a4 5x8.o
Old display code (everything compiled in for all mobiles):
88 0 0 88 58 display.o
2048 0 0 2048 800 font_r8x8_horiz.o
2048 0 0 2048 800 font_r8x8.o
920 0 0 920 398 ssd1783.o
399 0 0 399 18f st7558.o
638 0 0 638 27e td014.o
More information about the baseband-devel
mailing list