your definition (in the. c file) is missing the __at() keyword including the address argument. The only difference between header and implementation file is the extern keyword (and optionally the initializer, do not use them here, though).

Good luck,

On Jun 21, 2014 11:00 PM, "Kustaa Nyholm" <Kustaa.Nyholm@planmeca.com> wrote:
>why not do as the libraries declare and define SFRs?
>In the header use
>extern __at(0x0400) volatile BDT ep0_o;

Ah, of course, I should have looked at the headers thanks, that is exactly what I was looking for!

Hmm, spoke too soon, now the linker complains:

error: missing definition for symbol "_ep0_o", required by "../obj/usb_hid.o"

and if try to define it in the .c file I again get:

volatile BDT ep0_o;

br Kusti

This e-mail may contain confidential or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden. We will not be liable for direct, indirect, special or consequential damages arising from alteration of the contents of this message by a third party or as a result of any virus being passed on or as of transmission of this e-mail in general.

HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
Sdcc-user mailing list