Map Browser
The Map Browser provides you an easy way to see and browse the selected project’s memory footprint. You can choose between three different view contents to see better details of the memory utilization. The Memory Regions, Output sections and Symbols. The Map Browser can be opened either directly by double-click to memory map file (*.map, *.ymap, *.gmap
) or by .
Number | Element | Description |
---|---|---|
1 |
View content selector |
You can select this kind of views:
|
2 |
Filter area |
You can limit the amount of displayed data by applying a filter. See the Data Filtering for further details. |
3 |
Clear filtering. |
Clear the filter string. |
4 |
Refresh content area |
Reload the Map Bowser data. |
5 |
View content area |
The area where the content of the selected kind of view appears. |
6 |
Applied filter |
The latest applied filter string. |
Memory Regions
The Memory Regions shows the memory regions, as you defined within the linker script by the command MEMORY
. It provides this information:
-
The memory name.
-
The memory origin address.
-
The size of used memory in [bytes] units.
-
The length of the memory in [bytes] units.
-
The list of memory attributes.
Output Sections
The Output Sections shows the list of all output sections and provides this information for each of them:
-
The output section name.
-
The Virtual memory address (VMA) of the output section.
-
The Load memory address (LMA) of the output section.
-
The output section size in [bytes] units.
-
The Virtual memory region name.
-
The Load memory region name.
-
The list of the output section attributes.
Symbols
The Symbols shows the list of all symbols and provides this information for each of them:
-
The symbol name.
-
The symbol value.
-
The symbol size.
-
The memory region name to which the symbol belongs.
-
The output section name.
-
The input section name.
-
The symbol scope (local/global).
-
The object name from which the symbol comes.
Data filtering
Full-text filter
The full-text filter applies to all string-based fields in the current view, such as a region, a section, or a symbol name.
The filter accepts wildcards for single/multiple characters (?
and *
) as well as numerous keywords separated by the ` ` (space). Space acts as a logical AND operation here. The filter input is case insensitive.
For example, to display only rows containing in any of its string-based columns both '.code' value and any value beginning with 'flash', type:
.code flash*
.
Advanced filter
The advanced filter is an extension of the full-text-based filter. It enables you to perform more precise data filtering than the simple search can provide. Compared to a full-text filter, the advanced filter allows specifying filter criteria over arbitrary columns in a view.
You start the advanced filtering by entering the double colon ::
prefix following the column name, equal operator =
, and the value to search. You may specify several such column_name = value
terms in the filter, provided each column_name
is unique.
The column_name
applicable to the filter must match one of the column names displayed in the table header for the currently selected Map Browser view.
The value
form depends on the column type. String-based columns accept wildcards for single/multiple characters (?
and *
). Numeric-based columns enables you to specify either a single value (e.g. 0x8000
) or a value range in the format of start - end
(e.g. 0x80000000 - 0x8000FFFF
). You may use both decimal (without prefix) and hex numbers (with 0x
prefix).
The column names and values are both case-insensitive. You may see typical usage in the following examples.
Filter all items containing the main string in the Name column:
::Name = *main*
To filter all items containing the main string in the Name column and also int_flash string in the Region column, you can use this expression:
::Name = *main* region = int_flash
To filter all elements with the Size equal 0x8
, you can use the following filter:
::size = 0x8
If you are interested in size range, then you can use a filter like the following one:
::size = 0x8 - 0x18
Supported map file formats
The variety of data types available in the view differ depending on the toolchain in use and the type of the MAP file produced. The overview of the current status summarizes the following table.
Architecture | GNU Text-based MAP | YAML-based MAP |
---|---|---|
ARM GNU |
+ |
- |
ARM LLVM |
- |
+ |
MCS |
+ |
- |
PowerPC GNU |
+ |
- |
TriCore LLVM |
- |
+ |
TriCore GNU |
+ |
- |
SCR |
- |
- |