Hello everyone,
I have been using MDK-ARM with STM32F7 with ARMCC5 for a while now. I have switched to ARM Compiler version 6.6 (MDK 5.24) and 6.9 (MDK 5.25) and modified the source code to compile with LLVM/Clang.
I have observed a problem with the new Source Browser since MDK 5.24, 5.25-pre, 5.25-pre2 and also in 5.25.
The problem is as follows (uVision 5.25.2.0): The C project has enabled source browse information (Project - Options for Target xxx - Output - Checked "Browse Information"). After opened the project a string "Creating Browse Information" is displayed on the status bar (View - Status Bar). After 15-20 seconds (compiled binary size is 100 kB with -Oz).
Now, I can navigate to definitions and references with "Go to Definition of xx" and "Go to Reference of xx", respectively. "Show all References of xx" also works as intended. I use this to navigate to function definitions, as uVision does not have Eclipse like "hover-to-show" feature. However, just a single change in the source file (add/remove a space or any thing) trigger the "Creating Browse Information" in the status bar, and navigation is now defect. Both "Go to Definition..." and "Go to Reference..." jumps to reference in .h-file, instead of the .c-file. The funny thing is that, editing .h files does not cause this problem.
There are two ways I can work-around this problem: 1) Close and reopen the project (and wait for another 15-20 seconds!). 2) First uncheck "Browse Information". Leave the Options window. Reopen the Options window and then check "Browse Information" again and wait 15-20 seconds! And, yes, the problem is there again if I edit any c-files.
I have followed this forum since the release of MDK-ARM 5.25, but nobody has reported this problem. Is it only my computer that has some corrupted configuration or is this problem existing, but has not been reported?
I like MDK-ARM over Eclipse because of it's simplicity and easy to use. Because of SIL applications, we are "forced" to use KEIL. However, this problem is so annoying that I edit and compile my project with GCC in Eclipse and only compile code in uVision before download to flash.
Yes it is very annoying. This problem has been around for a long time.
I asked about it some time ago: http://www.keil.com/forum/62127/
Hello,
Thanks for your reply.
However, there is a significant difference in the content of the thread you have linked to and my problem in uVision here: Your reported problem was slow compilation (because Source Browser Information is generated during compile time). My problem is defect Source Browser Information (fast compilation).
I agree, and it is annoying, that the Source Browser has been slowed down with newer releases. Before MDK-ARM 5.24 (released June 2017), Source Browser Information was only available for ARM C/C++ Compiler version 5.
The problem I had, and reported here, was related to ARM Compiler version 6 (based on LLVM/Clang with ARM extensions). One of the reasons why I switched to ARMC6 was because of it compilation speed. Source Browser Information is not generated at compile time, but during open and editing. Keil still has to do a lot of improvements to compete with Eclipse.
One more observation: Source Browser Information becomes defect only editing in uVision. I edit source files in Ecplise and have uVision to automatically reload changes. As long as I never touche source files in uVision, the Source Browser works as intended. Some times I forget, do some changes in uVision, and it does not work anymore.
Keil has fixed this issue. It will be incorporated into Release version 5.26.