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

Access violation

I'm relatively new to Keil and C167. I got an error: "error 65: access violation" while debugging an assembly program using simulator. I tried these 2 sets of assembly code

1) Using EXTS

EXTS #4, #3
mov r1, #0x0A
mov r2, #0x1000
mov [r2], r1

2) Using DPP
mov DPP2, #0x0010
mov r1, #0x0A
mov DPP2:0x1000, r1

But both gives me the error: "error 65: access violation: addr=0x00041000".

In the project settings, I had mentioned 40000 to 90000 as External RAM.

Would be grateful if you can correct me and provide me some guidance.

Thanx in advance...!!!

Parents
  • Deepak,
    I create a 'monitor' subdirectory under the application subdirectory, with version subdirectories if needed. In 'monitor' are the following 'source' files:
    BOOT167.A66 Boot code
    INST167.A66 Installation code
    CONFIG.INC Configuration macros
    BOOT.BAT Make
    BOOTCOPY.BAT Output distribution
    ABSTRACT.TXT Documentation

    These are all copied from C:\Keil\c166\monitor where there are instructions for their use/modification and a number of pre-built monitors for different development boards.
    I have a UV2 project which runs the boot.bat file which assembles and links everything.
    The bootcopy.bat then copies the output files back to the keil\c166\monitor subdirectory where the toolchain expects them to be. The abstract.txt file is displayed under the UV2 project options menu in the debugger monitor window. I make certain it describes the address map accurately.
    I find it very helpful to formalize the memory map in a separate document which shows the address ranges, monitor data and code areas and any block 'mirrors' which occur. This is often the first thing I do in the project. Once it is done and the config.inc matches it along with the project startup code (start167.166) I seldom have to change them or worry about addressing problems.
    Best luck,
    Scott

Reply
  • Deepak,
    I create a 'monitor' subdirectory under the application subdirectory, with version subdirectories if needed. In 'monitor' are the following 'source' files:
    BOOT167.A66 Boot code
    INST167.A66 Installation code
    CONFIG.INC Configuration macros
    BOOT.BAT Make
    BOOTCOPY.BAT Output distribution
    ABSTRACT.TXT Documentation

    These are all copied from C:\Keil\c166\monitor where there are instructions for their use/modification and a number of pre-built monitors for different development boards.
    I have a UV2 project which runs the boot.bat file which assembles and links everything.
    The bootcopy.bat then copies the output files back to the keil\c166\monitor subdirectory where the toolchain expects them to be. The abstract.txt file is displayed under the UV2 project options menu in the debugger monitor window. I make certain it describes the address map accurately.
    I find it very helpful to formalize the memory map in a separate document which shows the address ranges, monitor data and code areas and any block 'mirrors' which occur. This is often the first thing I do in the project. Once it is done and the config.inc matches it along with the project startup code (start167.166) I seldom have to change them or worry about addressing problems.
    Best luck,
    Scott

Children
No data