This is for a coldfile MCF52110 processor. Developing code with Codewarrior 5.9.0.
I figured out how to set up a section, by modifying the linker control file.
In memory section:
MEMORY {
interrupts (RX) : ORIGIN = 0x20000000, LENGTH = 0x00000500
code (RX) : ORIGIN = 0x20000500, LENGTH = 0x00002754
data (RW) : ORIGIN = 0x20002C54, LENGTH = 0x0000139C
Magic_mem (RX) : ORIGIN = 0x20003FF0, LENGTH = 0x00000010 <== memory for my new section
ipsbar (RW) : ORIGIN = 0x40000000, LENGTH = 0x0
}
In SECTIONS:
.Magic : {
*(.Magic)
} > Magic_Mem
and then use a statement like:
#pragma define_section _Magic ".Magic" far_absolute R
__declspec (_Magic) char magic_data[16];
to set up variables in my new section.
The whole reason I'm trying to do this is to try to set aside a small area of RAM that the compiler's initialization code doesn't clear to 0 or initialize to some value.
Why? I want to be able to save a few bytes of system status, so that after an unexpected reset, there is some way for the system to figure out what state it is supposed to be in.
But this all seems way too complicated. Is there an easier way to accomplish this?
Mark