ARM Technical Support Knowledge Articles

ERROR 65 WHEN USING MEMMAP ON PHILIPS LPC2000

Applies to: uVision Debugger

Answer


Information in this article applies to:


QUESTION

I have copied the interrupt vectors into RAM (to allow the implementation of a bootstrap loader) using the following code lines:

unsigned char vectors[32] __at 0x40000000;  // reserve space for IRQ vectors

void copy_vectors (void)  {
   memcpy (vectors, 0, 32);   // copy original IRQ vectors to RAM
   MEMMAP = 2;                // fetch vectors from RAM
}

When I run this program in the simulator I am getting

*** error 65: access violation at 0x00000018 : no 'execute/read' permission

On real hardware my program seems to work. How can I test the program in the simulator?

ANSWER

You need to specify the memory mapping attributes for the RAM using the MAP command. It is required that the address space 0x40000000 - 0x4000003F allows code execution.

You may put the required MAP commands into a debugger INI file that can be entered under Project — Options for Target — Debug — Initialization file. The content of such a file may be for example:

MAP  0x40000000, 0x4000003F  READ WRITE EXEC
// allow code execution for interrupt vector fetch

MORE INFORMATION

SEE ALSO

Article last edited on: 2007-01-10 12:14:09

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential