This is a keil compilation information display enhancement tool that supports the visualization of chip memory, lightweight and no dependencies. It has the following features:
-
Analyze the RAM and flash usage of each file involved in the compilation
- Automatically ignore files that are not included in the compilation
- Automatic retrieval of files renamed by keil
- Support for double-clicking to open documents
- Support for turning off the display of this information
- Support for displaying only file names
-
Analyze the RAM and flash usage of the chip and visualize it with a progress bar
■
or#
orX
Indicates physically occupied area□
orO
Indicates the area of zero initialize_
Indicates unused areas
-
Demonstration of the amount of data added and subtracted after secondary compilation
- By comparing the results of the last compilation shows the size of the amount of data added or subtracted by this compilation, in byte
- If the file is new,
[NEW]
will be displayed
-
Automatically searches for keil projects in this level of the directory, so it can be called without parameters
- The last keil project searched is selected by default
- Support for entering absolute paths to specify keil projects
- Support for specifying keil projects by filename only (must be a directory of the same level, no file extensions)
- If there are spaces in the path or project name, enclose them in
""
-
Support for input parameter modification options
- Specify the keil project as described in function 4
-OBJ
Display RAM and flash occupancy information for each file (default)-NOOBJ
Does not display RAM and flash usage information for each file-PATH
Displays the relative path to each file (default)-NOPATH
Shows only the filename of each fileThe following features are new in v1.5
-NOLOG
No log file is generated-STYLE0
Progress bar style following system (default)-STYLE1
Progress bar style 1:|####OOO____|
(default style for non-Chinese environments)-STYLE2
Progress Bar Style 2:|XXXOOOO____|
- The above commands are not case-sensitive
-
Show maximum stack usage
- Data from keil, static can not be analyzed accurately, data for reference only
-
support placed in the public directory, you can call the tool in any directory, without following keil uvproj(x) project
- v1.4 New Features
- You must set the system environment variable and place
keil-build-viewer.exe
in the directory specified by the system environment variable. It is recommended that you use the system environment variablePath
. - This saves copying
keil-build-viewer.exe
to the corresponding keil uvproj(x) project, butafter build
still needs to be filled in, see2 Use in keil
for details.
Description: All parameters of this tool can be entered out of order, and when it is empty, it means that the default value is selected, but the parameters need to be separated from each other by space.
Double-click to open the corresponding file animated presentation
-
The way to invoke in keil is very simple, download latest version of
keil-build-viewer.exe
from releases and put it in the same level directory of the uvproj(x) project corresponding to keil, and configure it according to the following figure. The configuration is done as shown below. If you want to enter other commands, enter them afterkeil-build-viewer.exe
. If you want to display only the filename of each file, you can fill in the following:keil-build-viewer.exe -NOPATH
-
In cmd or powershell use the same thing, just add the prefix
.\
. For example:.\keil-build-viewer.exe
This code is only supported on windows systems.
-
If you already have gcc installed, ignore this step.
-
Download the gcc compiler, for compatibility, here is a 32-bit mingw download link: i686-13.1.0-release-posix-dwarf-ucrt-rt_v11-rev1.7z
-
Unzip the program and put it in any path, take
C:\mingw32
as an example. -
Open
powershell
orcmd
and typegcc -v
, and the following image appears to indicate successful configuration
-
Open
powershell
orcmd
and locate the code directory.- If you are using
powershell
, hold down theshift
key while clicking the right mouse button on an empty space in the code directory and select Openpowershell
, which will automatically locate the code directory.
- If you are using
-
Execute the following gcc command
gcc .\keil-build-viewer.c -o .\keil-build-viewer.exe
-
A prompt such as
[ERROR] NO keil project found
appears.Confirm that
keil-build-viewer.exe
is placed in the same directory as the keil uvproj(x) project you need to view. -
A prompt such as
[ERROR] listing path is empty
appears.Select the folder in keil where you want to place the listing-related files.
-
A prompt such as
[ERROR] generate map file is not checked
or[ERROR] Check if a map file exists
appears. -
If compilation information is missing or deviates from reality.
Confirm that the parsed project is the target project (when there are multiple projects in the same level of directory)
You can check the current project parsed by the tool with the parsed predecessor information, and if you find inconsistencies, you can specify the project name afterkeil-build-viewer.exe
, for example:keil-build-viewer.exe TIMER or keil-build-viewer.exe TIMER.uvprojx
-
If there are spaces in the project directory or project name, enclose them in
""
. -
For other questions, please raise issues or contact the authors.
1. Currently only the keil MDK is supported.
2. Does not support parsing of files added via RTE
version | date | author | revise content |
---|---|---|---|
v1.0 | 2023-11-10 | Dino | Initial release |
v1.1 | 2023-11-11 | Dino | 1. Adaptation of RAM and ROM parsing |
v1.2 | 2023-11-11 | Dino | 1. Adapted map file for keil4 2. Added print message when LTO is detected to be on 3. Fixed the problem that no region is printed when LTO is enabled |
v1.3 | 2023-11-12 | Dino | 1. Fixed the issue that only one lib is parsed when there are multiple libs in the project |
v1.4 | 2023-11-21 | Dino | 1. Add the function of placing this tool in the directory contained in the system environment variable Path |
v1.5 | 2023-11-30 | Dino | 1. Add more progress bar styles 2. Add parsing customized memory area 3. Fix the problem of displaying an exception when the RAM and ROM information is missing |
v1.5a | 2023-11-30 | Dino | 1. Fix object data overflow problem 2. Change the display strategy of progress bar memory size, no longer round up |
v1.5b | 2023-12-02 | Dino | 1. Fix save file path memory dynamic allocation is too small |
v1.6 | 2024-12-11 | Dino | 1. [Fix] Problem with multiple regions causing multiple lines to be displayed 2. [Fix] Problem of Execution Region being recognized incorrectly. 3. [Fix] Problem of duplicate display when Execution Region is used in other Loard Region. 4. [Modified] Display unused memory in the same category. 5. [Modified] If the Execution Region Size is UINT32_MAX, it will be changed to the size of the corresponding memory. |