rtel wrote on Saturday, March 15, 2008:
In the map file there is:
2888 bytes for tasks.c
2748 bytes for queue.c
268 bytes for list.c
1000 bytes for port.c
Total for the kernel is then 6.9K which is the largest I have ever seen. This must be something specific to the Microblaze architecture or instruction set inefficiencies. I should turn on the optimiser and remove unused symbols, and see what it comes down to.
You could remove quite a lot from port.c by removing the code that fills the registers with known values. You could also make functions out of some of the inline code.
In addition you have:
1548 bytes for libxil.a.
732 bytes for the USRT driver.
416 bytes for the Xilinx interrupt handler code.