ARM Technical Support Knowledge Articles

ERROR: L6985E WHEN USING __AT DIRECTIVE

Applies to: RealView Linker

Answer


Information in this article applies to:


QUESTION

I am writing an application for an NXP LPC2294 device that uses external memory and I define the following variables in external memory:

#include 

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

When I link this application, I get 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 could be wrong?

ANSWER

You need to define all the available memory in your system. When you want to locate certain variables in a specific memory space, then you must 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.

SEE ALSO

Article last edited on: 2012-09-11 07:01:16

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