This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

***error 65: no 'execute/read' permission

I'm jumping to an address in external Flash which is outside of my internal EPROM code area. In uV2, I've set up my target with this Off-chip Code Memory starting at address 0x4000 and with a size of 0xC000. When I attempt to make a jump to this address range I get the following error:

***error 65: access violation at C:0x4000 : no 'execute/read' permission
Any idea on what I'm doing wrong?

  • Disclaimer: I'm not speaking with any authority, since I've not ever had to set up off-chip memory this way.

    When you start the sim/debug, is any code present in that area? From what I'm gathering about your application, it wouldn't surprise me if there wasn't. It could be that for your testing purposes, you may have to "dummy-up" something to put (link in) up there as if your bootloader had programmed it, giving something to jump to.

    Just a thought.

    --Dan Henry

  • When you load a target program into the simulator, a memory map is defined using the information from the OMF file. The memory map that is defined includes which ranges of memory are executable, which are readable, and which are writable.

    This is usually a "FEATURE" that lets you know that you program has jumped off into the weeds. :-)

    Check the Memory Map settings inthe Debug menu to make sure that the address range you have trouble with is specified.

    Keil Support

  • It is common with the so-called Integrated Development Environments to be able to click a terse/cryptic message such as

    ***error 65: no 'execute/read' permission
    And get an expanded explanation of its meaning, possible causes, possible solutions, etc - in fact, information just like the previous reply from Keil Support!

    So, Keil, any chance of getting this with uVision2?
    In fact, any chance of any context-sensitive help? ;-)

  • When you load a target program into the simulator, a memory map is defined using the information from the OMF file. The memory map that is defined includes which ranges of memory are executable, which are readable, and which are writable.

    So this is just a feature of the simulator, and will work fine on the actual
    target board if indeed there is code memory at my jump location?

  • This feature is already there. Just click on the error message and hit F1.

    This works for all assembler, compiler, and linker errors/warnings and for other errors/warnings as well.

    Keil Support