gnupic: Re: [gnupic] Warning [220] : Address exceeds maximum range for this processor
Subject:
Re: [gnupic] Warning [220] : Address exceeds maximum range for this processor
From:
Robert Pearce ####@####.####
Date:
12 Jan 2008 15:32:25 -0000
Message-Id: <HTYfqDNh1NiHFwHK@daniel.huneausware.local>
On Sat, 12 Jan 2008, Holger Oehm ####@####.#### wrote :
>I think it should certainly be initialized data then (I want the
>default value to be present in the eeprom after burning the pic).
>
Actually that's not how it works :)
>
>But my next try:
>...
>DEEPROM CODE
>ee_address DE 0x01
>...
>works just fine.
That's right.
> (I didnt understand the documentation of IDATA anyway,
>shoud it burn the value or not?)
Yes and no. The IDATA directive is for declaring a section of
"initialised" data in RAM. The EEPROM is not part of the RAM memory.
It's not strictly part of the code either, but is mapped as if it is.
Values that you declare in an IDATA block are incorporated into the code
image in a special region beyond the end of your actual code. This the
allows start-up function to copy that data into RAM, where it's supposed
to be. That's not what you want with EEPROM.
Anything you want to go _directly_ into the HEX image (including EEPROM
data) must be declared in a CODE section. Neither IDATA nor UDATA have
anything to do with the address space that ORG deals with.
--
Rob Pearce http://www.bdt-home.demon.co.uk
The contents of this | Windows NT crashed.
message are purely | I am the Blue Screen of Death.
my opinion. Don't | No one hears your screams.
believe a word. |