<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>S12 / MagniV MicrocontrollersのトピックRe: Link errors</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Link-errors-MC9S12DP256B/m-p/175975#M6157</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi Sangy,&lt;BR /&gt;&lt;BR /&gt;I don't think that using 0x8000..0xBFFF this way is a good idea. Basically&lt;BR /&gt;by declaring those 48k Flash to be a single, contiguous memory area, you must never ever change PPAGE . As soon as you do, an interrupt handler may have been allocated in the 0x8000..0xBFFF area and the device may start to crash.&lt;BR /&gt;So basically by using those 16k for non banked code, you loose 256k-48k, &amp;gt; 200k of flash, so I think that's a bad thing unless you really want to waste those 200k's of Flash.&lt;BR /&gt;&lt;BR /&gt;For a device with 256k flash, I think the appropriate memory model should usually be the banked one, and not the small memory model one as it appears given your prm.&lt;BR /&gt;&lt;BR /&gt;About the 0xFFFE overlapping, obviously something else that the prm file is defining the reset vector at 0xFFFE in addition to the prm file line&lt;BR /&gt;"VECTOR ADDRESS 0xFFFE&amp;nbsp; _Startup".&lt;BR /&gt;Figure out what else in your application is doing this, and then either switch off (comment) the VECTOR prm command or the other location. In order to see what it is, you can just comment the VECTOR temporarily.&lt;BR /&gt;&lt;BR /&gt;Daniel&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 03 Jan 2008 01:23:52 GMT</pubDate>
    <dc:creator>CompilerGuru</dc:creator>
    <dc:date>2008-01-03T01:23:52Z</dc:date>
    <item>
      <title>Link errors - MC9S12DP256B</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Link-errors-MC9S12DP256B/m-p/175973#M6155</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;HI,&lt;/DIV&gt;&lt;DIV&gt;I am very new to codewarrior software&amp;nbsp; version 3.1and newly working in microcontrollers, i am working on MC9S12DP256B&lt;/DIV&gt;&lt;DIV&gt;when i compile my code i am getting L1102 error out of allocation space in segment ROM_C000 at address 0XFD33. one more error L1119 vector allocated at absolute address 0XFFFE over laps with sections placed in segment .absseg0&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;this is my prm file&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;NAMES&lt;BR /&gt;END&lt;/DIV&gt;&lt;DIV&gt;SEGMENTS&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_WRITE 0x1000 TO 0x3FFF;&amp;nbsp; /* 12K */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EEPROM&amp;nbsp;&amp;nbsp; = NO_INIT&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0400 TO 0x0FFF&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ALIGN 2 [&amp;lt;= 2: 2] [&amp;gt;2: 4];&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROM_4000 = READ_ONLY&amp;nbsp; 0x4000 TO 0x7FFF;&amp;nbsp; /* 16K */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROM_C000 = READ_ONLY&amp;nbsp; 0xC000 TO 0xFEFF;&amp;nbsp; /* ~16K */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SECURITY = READ_ONLY&amp;nbsp; 0xFF00 TO 0xFF0F;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROM_FF10 = READ_ONLY&amp;nbsp; 0xFF10 TO 0xFF7F;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;END&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;PLACEMENT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PRESTART, STARTUP,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROM_VAR, STRINGS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NON_BANKED, DEFAULT_ROM,&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; COPY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp; ROM_4000, ROM_C000,ROM_FF10;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT_RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp; RAM;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EEPROM_DATA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;INTO&amp;nbsp; EEPROM;&lt;BR /&gt;END&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;STACKSIZE 0x0400 /* 1K bytes = 1/12 of RAM */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;VECTOR ADDRESS 0xFFFE&amp;nbsp; _Startup&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;i tried to increse the segment size and i changed the prm file&lt;/DIV&gt;&lt;DIV&gt;in data sheet of MC9S12DP256B the address 8000 to BFFF is shown for page window Flash Rom&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;in order to&amp;nbsp; remove errors&amp;nbsp;new prm file i used is&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;NAMES&lt;BR /&gt;END&lt;/DIV&gt;&lt;DIV&gt;SEGMENTS&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_WRITE 0x1000 TO 0x3FFF;&amp;nbsp; /* 12K */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EEPROM&amp;nbsp;&amp;nbsp; = NO_INIT&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0400 TO 0x0FFF&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ALIGN 2 [&amp;lt;= 2: 2] [&amp;gt;2: 4];&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROM_4000 = READ_ONLY&amp;nbsp; 0x4000 TO 0x7FFF;&amp;nbsp; /* 16K */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROM_C000 = READ_ONLY&amp;nbsp; 0x8000 TO 0xFEFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;END&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;PLACEMENT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PRESTART, STARTUP,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROM_VAR, STRINGS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NON_BANKED, DEFAULT_ROM,&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; COPY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp; ROM_4000, ROM_C000;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT_RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp; RAM;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EEPROM_DATA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;INTO&amp;nbsp; EEPROM;&lt;BR /&gt;END&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;STACKSIZE 0x0400 /* 1K bytes = 1/12 of RAM */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;VECTOR ADDRESS 0xFFFE&amp;nbsp; _Startup&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;now linker error L1102 cleared but link error L1119 i.e vector allocated at absolute address 0XFFFE over laps with sections placed in segment .absseg0 still persisting&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Please can any one suggest me what will be the corrective action. Waiting for reply&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thanks inadvance,&lt;/DIV&gt;&lt;DIV&gt;Sangy&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Added p/n to subject.&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Message Edited by NLFSJ on &lt;/SPAN&gt;&lt;SPAN class="date_text"&gt;2008-01-08&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;12:51 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Jan 2008 22:16:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Link-errors-MC9S12DP256B/m-p/175973#M6155</guid>
      <dc:creator>Sangy</dc:creator>
      <dc:date>2008-01-02T22:16:40Z</dc:date>
    </item>
    <item>
      <title>Re: Link errors</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Link-errors-MC9S12DP256B/m-p/175974#M6156</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi Sangy,&lt;BR /&gt;&lt;BR /&gt;Your PRM file works fine for me.&lt;BR /&gt;Are you sure that you did not change something else?&lt;BR /&gt;You get that error when you define a vector twice.&lt;BR /&gt;For example if I had in my PRM&lt;BR /&gt;:&lt;BR /&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;/DIV&gt;&lt;PRE&gt;VECTOR ADDRESS 0xFFFE  _Startup &lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;&amp;nbsp;And had in my code:&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;/DIV&gt;&lt;PRE&gt;__interrupt 0 void Handler(){}
Or this

typedef void near (* near tIsrFunc)(void);
const tIsrFunc _vectab[] @0xFFFA  = // one extra vector in the table.
{ 
  (tIsrFunc)handler1,
  (tIsrFunc)handler2,
  (tIsrFunc)handler3, // this one ends up at 0xFFFE  
};&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;&amp;nbsp;I would get that error.&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 09:24:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Link-errors-MC9S12DP256B/m-p/175974#M6156</guid>
      <dc:creator>JimDon</dc:creator>
      <dc:date>2020-10-29T09:24:50Z</dc:date>
    </item>
    <item>
      <title>Re: Link errors</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Link-errors-MC9S12DP256B/m-p/175975#M6157</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi Sangy,&lt;BR /&gt;&lt;BR /&gt;I don't think that using 0x8000..0xBFFF this way is a good idea. Basically&lt;BR /&gt;by declaring those 48k Flash to be a single, contiguous memory area, you must never ever change PPAGE . As soon as you do, an interrupt handler may have been allocated in the 0x8000..0xBFFF area and the device may start to crash.&lt;BR /&gt;So basically by using those 16k for non banked code, you loose 256k-48k, &amp;gt; 200k of flash, so I think that's a bad thing unless you really want to waste those 200k's of Flash.&lt;BR /&gt;&lt;BR /&gt;For a device with 256k flash, I think the appropriate memory model should usually be the banked one, and not the small memory model one as it appears given your prm.&lt;BR /&gt;&lt;BR /&gt;About the 0xFFFE overlapping, obviously something else that the prm file is defining the reset vector at 0xFFFE in addition to the prm file line&lt;BR /&gt;"VECTOR ADDRESS 0xFFFE&amp;nbsp; _Startup".&lt;BR /&gt;Figure out what else in your application is doing this, and then either switch off (comment) the VECTOR prm command or the other location. In order to see what it is, you can just comment the VECTOR temporarily.&lt;BR /&gt;&lt;BR /&gt;Daniel&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jan 2008 01:23:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Link-errors-MC9S12DP256B/m-p/175975#M6157</guid>
      <dc:creator>CompilerGuru</dc:creator>
      <dc:date>2008-01-03T01:23:52Z</dc:date>
    </item>
    <item>
      <title>Re: Link errors</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Link-errors-MC9S12DP256B/m-p/175976#M6158</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;Daniel,&lt;BR /&gt;If you are using CW SE (like students and hobbyists), the rest of flash is not usable anyway.&lt;BR /&gt;I always use small model, and use&amp;nbsp; page 8000 in this way.&lt;BR /&gt;As for the PPAGE register, random (incorrect) values written will crash your program anyway.&lt;BR /&gt;When you are using flat small model, nothing should be writing the PPAGE.&lt;BR /&gt;Interrupt handlers in paged memory IS and issue using banked model, as presumably you are calling routines in banked flash, and PPAGE could be set.&lt;BR /&gt;&lt;BR /&gt;Using 4000 and 8000 like this is not a bad idea if you are using SE and SerMon. Other problems can result using non contiguous flash areas, and you don't lose 2K to sermon.( Like if you used C000 &amp;amp; 4000).&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by JimDon on &lt;SPAN class="date_text"&gt;2008-01-02&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;02:18 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jan 2008 03:06:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Link-errors-MC9S12DP256B/m-p/175976#M6158</guid>
      <dc:creator>JimDon</dc:creator>
      <dc:date>2008-01-03T03:06:45Z</dc:date>
    </item>
    <item>
      <title>Re: Link errors</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Link-errors-MC9S12DP256B/m-p/175977#M6159</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;HI,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;Jim and Daniel thanks&amp;nbsp;for your reply i will check whether any other code allocaing to this address.&lt;/DIV&gt;&lt;DIV&gt;Sangy&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jan 2008 11:13:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Link-errors-MC9S12DP256B/m-p/175977#M6159</guid>
      <dc:creator>Sangy</dc:creator>
      <dc:date>2008-01-03T11:13:00Z</dc:date>
    </item>
    <item>
      <title>Re: Link errors</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Link-errors-MC9S12DP256B/m-p/175978#M6160</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&amp;nbsp;Hi Jim D,&lt;/DIV&gt;&lt;DIV&gt;As you told the same vector being allocated two times one in prm and in code i commented in prm now the error is cleared thanks for your response.&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jan 2008 19:01:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Link-errors-MC9S12DP256B/m-p/175978#M6160</guid>
      <dc:creator>Sangy</dc:creator>
      <dc:date>2008-01-03T19:01:31Z</dc:date>
    </item>
  </channel>
</rss>

