Keil™, An ARM® Company

Technical Support

ARMLINK: ERROR: L6985E WHEN USING __AT DIRECTIVE


Information in this article applies to:

  • RealView MDK Version 3.04

QUESTION

I am writing an application for an NXP LPC2294 device that uses external memory and I just define some variables in external memory.

#include <absacc.h>

const unsigned short l1 __at(0x80001000)=0x1234;
const unsigned short l2 __at(0x80001002)=0x8765;
const char text[]       __at(0x80001008)="Hello World";

When I am linking this application I am getting the following error message:

Error: L6985E: Unable to automatically place AT section .ARM.__AT_0x80001000 with required base address 0x80001000.

Did I overlook something? What can be wrong wrong?

ANSWER

You need to define all the available memory in your system. When you want to locate just some variables in a specific memory space, then you should even specify this memory space. In your example enter in the dialog Project - Options - Target:

 Enable ROM1: Start 0x80001000  Size: 0x100

This will avoid that the memory space is used for anything else besides your absolute variables.

Last Reviewed: Friday, February 09, 2007


Did this article provide the answer you needed?
 
Yes
No
Not Sure