Differences in Browse Information Generation between AC5 and AC6 in Keil MDK

Follow+Star Public Account, don’t miss wonderful content

Differences in Browse Information Generation between AC5 and AC6 in Keil MDK

Author | strongerHuang

WeChat Public Account | Embedded Column

Many engineers who have used Keil MDK have found a problem: the compilation speed of Keil MDK is very slow.
There are several reasons for slow compilation speed:
  • Compiler

  • Code Size

  • Project Configuration (Browse Information)

Among them, the project configuration includes various generated information, which can be seen by opening the project options tab. Project -> Options for Target -> Output / Listing:

Differences in Browse Information Generation between AC5 and AC6 in Keil MDK

Differences in Browse Information Generation between AC5 and AC6 in Keil MDK

Many of the information here will affect the compilation speed, among which the generated browse information (Browse Information) will be discussed below.

Embedded Column

1

About Keil Browse Information

The browse information in Keil refers to the code information needed when we edit and debug, using right-click (or F12 shortcut key) to Go To Definition xxx:

Differences in Browse Information Generation between AC5 and AC6 in Keil MDK

You need to check the option to generate browse information in project configuration to use this feature properly:

Differences in Browse Information Generation between AC5 and AC6 in Keil MDK

Generating browse information will significantly impact compilation speed, and a *.crf file (browse information file) will be added under the Objects (Output configuration output path) folder.
For a description of various files in Keil MDK, refer to my article: Keil Series Tutorial 10_File Types and Related Descriptions.

Embedded Column

2

Differences in Browse Information Generation between AC5 and AC6

The default compiler for Keil MDK is the Arm Compiler (abbreviated as AC), with the mainstream being AC5 and AC6.

I have previously shared articles about AC5 and AC6:

Comprehensive Understanding of ARM Compiler AC6.12
Important Content and Differences of Keil MDK Compiler AC5 and AC6 Optimization Options

Actually, AC5 and AC6 have many differences, and there are many compatibility issues in code projects that previously used AC5.

1. Different Speed of Browse Information Generation between AC5 and AC6

If browse information is not generated (unchecked), the compilation speed of AC5 is not considered slow.

However, generally speaking, software development engineers usually generate browse information for easier editing and debugging of code.

The obvious difference between AC5 and AC6 is the significant difference in compilation speed; even with browse information generated, AC6 compiles much faster than AC5.

Moreover, there is also a difference in code size:

Differences in Browse Information Generation between AC5 and AC6 in Keil MDK

2. Different Methods of Generating Browse Information between AC5 and AC6

If you have used AC6, you will find that: you can directly Go To Definition xxx to browse the code without compiling.

For example, if you directly use STM32CubeMX to configure and generate Keil MDK code, modify the configuration, and use the AC6 compiler, you will find that you can directly Go To Definition without compiling.

Of course, the premise is that you have configured to use the AC6 compiler:

Differences in Browse Information Generation between AC5 and AC6 in Keil MDK

Additionally, AC6 generates browse information automatically in the background, which may take a few seconds or longer (depending on your computer configuration).

———— END ————

Reply in the background with『Keil Series Tutorial』to read more related articles.

FollowWeChat Public Account『Embedded Column』, check the bottom menu for more content, reply “Join Group” to join the technical exchange group according to the rules.

Differences in Browse Information Generation between AC5 and AC6 in Keil MDK

Click “Read Original” for more shares, welcome to share, bookmark, like, and view.

Leave a Comment