I found the bug in uVision v5 1. add a segment of code #ifdef XYZ ... #endif
2. make sure there is no preprocessor symbol XYZ 3. save all and rebuild 4. check code size 5. edit preprocessor symbol, add XYZ 6. click BUILD (F7) -> keil figured out that you changed compile options and it's doing what looks like a rebuild and not only build of changed files (showing that it's compiling all c files in project) 7. check code size, it's same as without symbol, the whole block of txt between ifdef XYZ and endif is NOT compiled?!?! - BUG 8. click REBUILD -> the code is now built, the codesize increased
so the rebuild done from build in step6 does not properly work, it's a serious bug :(
Do you have any understanding how the tools operste?
understanding how they *should* operate - yes understanding how keil itself operate - no, not the clue
1. when you do "rebuild" it should do clean/make, build all objects and link them 2. when you do "make" it should - in case "project files" are changed, do a rebuild - in other cases build only objects that depend on changed source files, and link everything
What keil does in case project files are changed and make started - it "shows" it's compiling *all* files, like it's doing a rebuild BUT it is actually NOT recompiling them ?!?!?
this makes ZERO sense
There are tools that ignore changes in the project settings and on "make" it will only recompile changed files and their dependencies. In that case you see that only "few" or "none" are compiled so you remember to do a "rebuild", but in case where Keil shows that it's compiling the whole project from scratch - and it's actually not... it's a bug IMO.
The only bug is in your knowledge and sight. Look at what really happens and you might learn.
You've informed keil support about it?
View all questions in Keil forum