RTEMS Code Size
Joel Sherrill
joel.sherrill at oarcorp.com
Tue Apr 17 14:35:18 UTC 2007
Hi,
I mentioned in the 4.7.1 release notes that some
work had been done on reducing the code footprint
of RTEMS executables. I wanted to post some details.
First be warned even though these tests used
are standard RTEMS tests, these results are BSP
specific. The BSP can have a negative impact on
minimum footprint. For example, the ERC32/SIS BSP
was linking the debug IO with the console driver so
you also got both in the executable. The console
driver in turn pulled in termios. The lesson here
is that if you are really concerned about the footprint
of your executable, make sure your BSP doesn't have
"sticky fingers" and require you to link too much.
4.6.6 4.7.0 4.7.1 4.8
sis minimum 83,312 83,248 58,992
sis hello 83,136 83,248 74,474
sis minimum POSIX 90,736 90,256 64,496
sis hello POSIX 90,368 90,080 79,200
sis minimum POSIX, ITRON 93,104 92,432 66,688 62,816
sis hello POSIX, ITRON 92,736 92,272 81,376 79,664
Notice the savings across those tests. Some
saved 1/3 or about 30K!!! Importantly, I think
there is still room for improvement left.
I currently see 6-8K which can be saved from the minimum
and hello. I have ideas for more beyond that but
need to investigate the impact of those.
How can you help? Obviously, this is work that takes
time and time is money. This is a general RTEMS
improvement that could be sponsored by a user. I did
the above work while sick in Germany and stuck in the hotel
room or plane. It was just something to do to pass
time and I did it as an RTEMS volunteer.
--joel
More information about the users
mailing list