How to check images created by different ARM Compilers (Specifically CLANG 6.13.1 vs 6.12)


I have a strange issue, that on a bootloading project of mine worked if compiled with ARM Compiler 6.12 but did not if compiled with 6.13.1.

The function of the firmware is very simple: when it boots, it checks a (volatile) memory  location for new FW, if found, it compute the CRC of its content and compares against the written CRC. If they match, it writes the FW into non-volatile location and sets MSP to where the main FW starts. 

The boot loader FW could run, but it somehow altered a piece of memory which was not touched by the image compiled with 6.12, even though I have specifically marked that area as EMPTY in the scatter file, and the pointer used to read that memory is a CONST pointer. I have made sure that the memory wasn't altered by the main FW.

I have read the release notes of 6.13, nothing seems to fit my problem.

I have tried to compare the listing of disassembled files from the two AXF, but was overwhelmed by the number of difference. Is there any quick way by which I can spot the difference?

Thanks in advance.


More questions in this forum