Search code examples
keil

What does "Excute-only Code" mean in Keil uVision?


I'm trying to understand the advanced usage of uVision. I saw an option under C/C++ tab in Options menu. What does this option do? Is there any webpage that I can use to search for tips like this? Here is the screenshot from the app: enter image description here


Solution

  • When the option Execute-only Code is ticked, your code will be placed in execute-only memory (XOM), which only allows instruction fetches, i.e. the processor can only fetch program code from that memory area to execute. All data accesses to the code area (both read and write accesses) will generate a fault. The main purpose of doing this is to prevent reading/stealing/reverse engineering the protected firmware.

    More information about this can be found here:

    An introduction to eXecute-only-Memory

    Execute-only memory

    Yes, you can find more development guidelines in the ARM® Compiler Software Development Guide and infocenter.arm.com in general.