AN720
6. ARM/Keil µVision
This section discusses ways to optimize projects using the Keil or ARM toolchain in the µVision IDE. The Keil
µVision tools used for the code size and execution speed testing discussed in this document are version
v4.1.0.894.
6.1. Reading the Map File
The map file is an output of the linker that shows the size of each function and variable and their positions in
memory. This map file is located in the build files for a project. In addition to the functions, the map file includes
information on variables and other symbols, including unused functions that are removed.
Figure 9 shows an excerpt from the sim3u1xx_Blinky map file from the Keil toolchain. The functions are listed with
a base address and size. In this case, the my_rtc_alarm0_handler is 50 bytes located at address 0x0000_03A5.
Figure 9. sim3u1xx_Blinky µVision Map File Example
6.2. Determining a Project’s Code Size
The Keil µVision IDE automatically displays the code size information at the end of a successful build. After
building the si32HAL 1.0.1 sim3u1xx_Blinky example, the IDE outputs:
Program Size: Code=1968 RO-data=296 RW-data=24 ZI-data=1536
".\build\BlinkyApp.axf" - 0 Error(s), 0 Warning(s).
The areas of memory are:
Code: all program code in decimal
RO-data: read-only data located in flash in decimal
RW-data: read-write uninitialized data located in RAM in decimal
ZI-data: zero-initialized data located in RAM in decimal
18
Rev. 0.1