RTEMS Code Size

Joel Sherrill joel.sherrill at oarcorp.com
Tue Apr 17 14:35:18 UTC 2007


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. 


More information about the users mailing list