Link errors on port from DP256 to DJ128

Started by galenpatrickogrady June 13, 2005
I'm using Codewarrior 2.0 and am doing my development with a DP256
part. The production version won't need all the bells and whistles of
the DP256 and so I'm trying to re-build for the DJ128. I've included
the DJ128 rather than DP256 c and h files and reduced the available
pages (in prm file) to match the DJ128.

Problem is I'm getting link errors that I don't know how to
troubleshoot. The errors look like this: "ERROR L1100: Segments
.absSeg265 (0x0) and .absSeg426 (0x0) overlap". Where are the
.absSegxxx entries generated and where are the "placement
instructions" that are causing the problem?

Regards,
Galen.


Hello Galen,
Look at the linker messages: you can map the message to a warning. The
linker option -WmsgSw1100 does this for you.
Then you could check the .map file what is causing your problem.
I guess you have two objects allocated to the address zero (using the
absolute @0x0000 notation.
In the map file you will get the name of the segment/object.

Erich

> -----Original Message-----
> From: 68HC12@68HC... [mailto:68HC12@68HC...]
> On Behalf Of galenpatrickogrady
> Sent: Montag, 13. Juni 2005 16:51
> To: 68HC12@68HC...
> Subject: [68HC12] Link errors on port from DP256 to DJ128 > I'm using Codewarrior 2.0 and am doing my development with a DP256
> part. The production version won't need all the bells and whistles of
> the DP256 and so I'm trying to re-build for the DJ128. I've included
> the DJ128 rather than DP256 c and h files and reduced the available
> pages (in prm file) to match the DJ128.
>
> Problem is I'm getting link errors that I don't know how to
> troubleshoot. The errors look like this: "ERROR L1100: Segments
> .absSeg265 (0x0) and .absSeg426 (0x0) overlap". Where are the
> .absSegxxx entries generated and where are the "placement
> instructions" that are causing the problem?
>
> Regards,
> Galen. >
>
> Yahoo! Groups Links >




Looks like the messages were being generated because of the dual
8-bit/single 16-bit register definitions in the DJ processor's .h
file. For example PORTA is defined as 8-bits at address 0 and PORTAB
is defined as 16 bits also at address 0. When I created a "clean"
DJ128 project in Codewarrior, I didn't get these errors because these
messages had automatically been disabled in the linker dialog.

When I disable the linker messages in question, my project build and
runs as expected on the DJ128. The .h file I'm using for the DP256
doesn't have these overlapping definitions and so it wasn't an issue
before.

Wouldn't it be better to define PORTAB as a union with PORTA? I don't
think it would cause these linker errors. Is it possible to nest
union definitions? PORTA and PORTAB are already unions of bits.

Regards,
Galen

--- In 68HC12@68HC..., "Erich Styger" <erich.styger@f...> wrote:
> Hello Galen,
> Look at the linker messages: you can map the message to a warning. The
> linker option -WmsgSw1100 does this for you.
> Then you could check the .map file what is causing your problem.
> I guess you have two objects allocated to the address zero (using the
> absolute @0x0000 notation.
> In the map file you will get the name of the segment/object.
>
> Erich
>
> > -----Original Message-----
> > From: 68HC12@68HC... [mailto:68HC12@68HC...]
> > On Behalf Of galenpatrickogrady
> > Sent: Montag, 13. Juni 2005 16:51
> > To: 68HC12@68HC...
> > Subject: [68HC12] Link errors on port from DP256 to DJ128
> >
> >
> > I'm using Codewarrior 2.0 and am doing my development with a DP256
> > part. The production version won't need all the bells and whistles of
> > the DP256 and so I'm trying to re-build for the DJ128. I've included
> > the DJ128 rather than DP256 c and h files and reduced the available
> > pages (in prm file) to match the DJ128.
> >
> > Problem is I'm getting link errors that I don't know how to
> > troubleshoot. The errors look like this: "ERROR L1100: Segments
> > .absSeg265 (0x0) and .absSeg426 (0x0) overlap". Where are the
> > .absSegxxx entries generated and where are the "placement
> > instructions" that are causing the problem?
> >
> > Regards,
> > Galen.
> >
> >
> >
> >
> >
> >
> >
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
> >


Yes, using a union is the cleaner solution. This has actually been
changed in the CW for HC12 V3.1 version, I'm not sure of CW for HC12 V3.0.

Daniel

galenpatrickogrady wrote:
> Looks like the messages were being generated because of the dual
> 8-bit/single 16-bit register definitions in the DJ processor's .h
> file. For example PORTA is defined as 8-bits at address 0 and PORTAB
> is defined as 16 bits also at address 0. When I created a "clean"
> DJ128 project in Codewarrior, I didn't get these errors because these
> messages had automatically been disabled in the linker dialog.
>
> When I disable the linker messages in question, my project build and
> runs as expected on the DJ128. The .h file I'm using for the DP256
> doesn't have these overlapping definitions and so it wasn't an issue
> before.
>
> Wouldn't it be better to define PORTAB as a union with PORTA? I don't
> think it would cause these linker errors. Is it possible to nest
> union definitions? PORTA and PORTAB are already unions of bits.
>
> Regards,
> Galen
>
> --- In 68HC12@68HC..., "Erich Styger" <erich.styger@f...> wrote:
>
>>Hello Galen,
>>Look at the linker messages: you can map the message to a warning. The
>>linker option -WmsgSw1100 does this for you.
>>Then you could check the .map file what is causing your problem.
>>I guess you have two objects allocated to the address zero (using the
>>absolute @0x0000 notation.
>>In the map file you will get the name of the segment/object.
>>
>>Erich
>>
>>
>>>-----Original Message-----
>>>From: 68HC12@68HC... [mailto:68HC12@68HC...]
>>>On Behalf Of galenpatrickogrady
>>>Sent: Montag, 13. Juni 2005 16:51
>>>To: 68HC12@68HC...
>>>Subject: [68HC12] Link errors on port from DP256 to DJ128
>>>
>>>
>>>I'm using Codewarrior 2.0 and am doing my development with a DP256
>>>part. The production version won't need all the bells and whistles of
>>>the DP256 and so I'm trying to re-build for the DJ128. I've included
>>>the DJ128 rather than DP256 c and h files and reduced the available
>>>pages (in prm file) to match the DJ128.
>>>
>>>Problem is I'm getting link errors that I don't know how to
>>>troubleshoot. The errors look like this: "ERROR L1100: Segments
>>>.absSeg265 (0x0) and .absSeg426 (0x0) overlap". Where are the
>>>.absSegxxx entries generated and where are the "placement
>>>instructions" that are causing the problem?
>>>
>>>Regards,
>>>Galen.
>>>
>>>
>>>