<?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>topic Re: Linker does not transition from Non Paged to Paged allocations in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176933#M6231</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the feedback..&lt;/P&gt;&lt;P&gt;EDIT:&amp;nbsp; I am using 9S12XDP512&lt;/P&gt;&lt;P&gt;I am using the banked memory model, when using--&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DEFAULT_ROM INTO OS_PAGED_E0 , OS_NONPAGED&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The _Startup function is placed into non paged memory and the Init function is placed into OS_PAGED_E0. Using the debugger, I was able to step the _Startup function until it tried to call Init.&amp;nbsp; When I tried to step into Init, it appeared to jump to the correct address in the debugger, but the memory window shows all 0xFFFF&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;One other behavior I --&amp;gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When using&lt;/P&gt;&lt;P&gt;DEFAULT_ROM INTO OS_NONPAGED, OS_PAGED_E0&lt;/P&gt;&lt;P&gt;I can arbitrarily shrink the size of OS_NONPAGED and it will link correctly sometimes, however there seems to be no logic as why this works.&amp;nbsp;&amp;nbsp;&amp;nbsp; Also this will usually work only until I modify a function that exists in Non Paged memory...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 18 Feb 2010 00:55:29 GMT</pubDate>
    <dc:creator>ebrady</dc:creator>
    <dc:date>2010-02-18T00:55:29Z</dc:date>
    <item>
      <title>Linker does not transition from Non Paged to Paged allocations</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176931#M6229</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am compiling ~30K of code using the linker map snippet below.&amp;nbsp; Whenever I include the line&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DEFAULT_ROM INTO OS_NONPAGED, OS_PAGED_E0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I will consistently see Linker Error L1102: Out of allocation space in segment OS_NONPAGED at address 0x7ee0.&amp;nbsp;&amp;nbsp;&amp;nbsp; However if I change the DEFAULT_ROM line to read&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DEFAULT_ROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp; OS_PAGED_E0, OS_NONPAGED;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It will link fine, but it will not run due to the Init function being placed in Paged Flash.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can anyone give some input as to what is going on with this?&amp;nbsp; Thanks&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;SEGMENTS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EE_OS_VERSION = READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0FFC TO&amp;nbsp;&amp;nbsp; 0x0FFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_WRITE&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2000 TO&amp;nbsp;&amp;nbsp; 0x3FFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OS_NONPAGED&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x4000 TO&amp;nbsp;&amp;nbsp; 0x7EFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOOT_PUB_FNS&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xEFD0 TO&amp;nbsp;&amp;nbsp; 0xEFFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM_F8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_WRITE&amp;nbsp; 0xF81000 TO 0xF81FFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM_F9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_WRITE&amp;nbsp; 0xF91000 TO 0xF91FFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM_FA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_WRITE&amp;nbsp; 0xFA1000 TO 0xFA1FFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM_FB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_WRITE&amp;nbsp; 0xFB1000 TO 0xFB1FFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM_FC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_WRITE&amp;nbsp; 0xFC1000 TO 0xFC1FFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM_FD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_WRITE&amp;nbsp; 0xFD1000 TO 0xFD1FFB;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OS_PAGED_E0&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0xE08000 TO 0xE0BFFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OS_PAGED_E1&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp; 0xE18000 TO 0xE1BFFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOOT_PARAM&amp;nbsp;&amp;nbsp;&amp;nbsp; = NO_INIT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xFD1FFC TO 0xFD1FFF;&lt;BR /&gt;&lt;BR /&gt;END&lt;BR /&gt;&lt;BR /&gt;PLACEMENT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PRESTART,&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;&amp;nbsp;&amp;nbsp; STARTUP,&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;&amp;nbsp;&amp;nbsp; ROM_VAR,&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;&amp;nbsp;&amp;nbsp; STRINGS,&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;&amp;nbsp;&amp;nbsp; VIRTUAL_TABLE_SEGMENT, &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NON_BANKED,&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;&amp;nbsp;&amp;nbsp; INTERRUPT,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; INTO&amp;nbsp; OS_NONPAGED;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT_ROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp; OS_NONPAGED, OS_PAGED_E0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOOT_PUBLIC_FNS&amp;nbsp;&amp;nbsp; INTO&amp;nbsp; BOOT_PUB_FNS;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EE_OS_VERSION&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp; EE_OS_VERSION;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SSTACK,&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp; RAM;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PAGED_RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp; RAM_F8, RAM_F9, RAM_FA, RAM_FB, RAM_FC, RAM_FD;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOOT_PARAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp; BOOT_PARAM;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;END&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Feb 2010 23:58:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176931#M6229</guid>
      <dc:creator>ebrady</dc:creator>
      <dc:date>2010-02-17T23:58:38Z</dc:date>
    </item>
    <item>
      <title>Re: Linker does not transition from Non Paged to Paged allocations</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176932#M6230</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;ebrady wrote: It will link fine, but it will not run due to the Init function being placed in Paged Flash.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm going to assume you're working with some HC12/S12/S12X microcontroller.&amp;nbsp; In Start12.c there is the _Startup function which is the entry point upon reset, which must not be in banked flash.&amp;nbsp; _Startup calls Init, which can be in banked flash.&amp;nbsp; Perhaps you need to make sure your memory model is banked so _Startup uses a 'call' instead of a 'jsr'?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Feb 2010 00:29:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176932#M6230</guid>
      <dc:creator>isionous</dc:creator>
      <dc:date>2010-02-18T00:29:23Z</dc:date>
    </item>
    <item>
      <title>Re: Linker does not transition from Non Paged to Paged allocations</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176933#M6231</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the feedback..&lt;/P&gt;&lt;P&gt;EDIT:&amp;nbsp; I am using 9S12XDP512&lt;/P&gt;&lt;P&gt;I am using the banked memory model, when using--&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DEFAULT_ROM INTO OS_PAGED_E0 , OS_NONPAGED&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The _Startup function is placed into non paged memory and the Init function is placed into OS_PAGED_E0. Using the debugger, I was able to step the _Startup function until it tried to call Init.&amp;nbsp; When I tried to step into Init, it appeared to jump to the correct address in the debugger, but the memory window shows all 0xFFFF&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;One other behavior I --&amp;gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When using&lt;/P&gt;&lt;P&gt;DEFAULT_ROM INTO OS_NONPAGED, OS_PAGED_E0&lt;/P&gt;&lt;P&gt;I can arbitrarily shrink the size of OS_NONPAGED and it will link correctly sometimes, however there seems to be no logic as why this works.&amp;nbsp;&amp;nbsp;&amp;nbsp; Also this will usually work only until I modify a function that exists in Non Paged memory...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Feb 2010 00:55:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176933#M6231</guid>
      <dc:creator>ebrady</dc:creator>
      <dc:date>2010-02-18T00:55:29Z</dc:date>
    </item>
    <item>
      <title>Re: Linker does not transition from Non Paged to Paged allocations</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176934#M6232</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;ebrady wrote: When I tried to step into Init, it appeared to jump to the correct address in the debugger, but the memory window shows all 0xFFFF&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sounds like that page was not programmed.&amp;nbsp; Make sure your programmer is set to program paged flash.&amp;nbsp; You might want to double-check everything with the Project.map file.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ebrady wrote: I can arbitrarily shrink the size of OS_NONPAGED and it will link correctly sometimes, however there seems to be no logic as why this works.&amp;nbsp;&amp;nbsp;&amp;nbsp; Also this will usually work only until I modify a function that exists in Non Paged memory...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I don't know enough about the linker to explain its quirks and subtle behaviors.&amp;nbsp; At first I thought OS_NONPAGED might have gotten full from code placed in DEFAULT_ROM and thus _PRESTART, STARTUP, ROM_VAR, and could not fit in OS_NONPAGED.&amp;nbsp; Thus having DEFAULT_ROM first placed into OS_PAGED_E0 left room in OS_NONPAGED for the other segments.&amp;nbsp; But with what you just said, I'm confused.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Feb 2010 01:24:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176934#M6232</guid>
      <dc:creator>isionous</dc:creator>
      <dc:date>2010-02-18T01:24:59Z</dc:date>
    </item>
    <item>
      <title>Re: Linker does not transition from Non Paged to Paged allocations</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176935#M6233</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the insight...&amp;nbsp; The project.map file was good, however when I double checked the programmer (it's custom), I found a problem with it.&amp;nbsp; It was in fact not programming OS_PAGED_E0, so this explains why the board was crashed whenever on jump to Init from _Startup&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It makes sense that the OS_NONPAGED section is becoming full and there are no places to put the required fields like _PRESTART, STARTUP, ROM_VAR. I am assuming the segment gets full and when the linker tries to place one of the required fields it has no place to do so.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My environment is working again, which works for me... I am still curious why chaning the size of OS_NONPAGED to a smaller value worked, but am able to live without an answer for now.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for the help&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Feb 2010 05:13:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176935#M6233</guid>
      <dc:creator>ebrady</dc:creator>
      <dc:date>2010-02-18T05:13:45Z</dc:date>
    </item>
    <item>
      <title>Re: Linker does not transition from Non Paged to Paged allocations</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176936#M6234</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;My pleasure.&amp;nbsp; Glad to help.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Feb 2010 05:45:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176936#M6234</guid>
      <dc:creator>isionous</dc:creator>
      <dc:date>2010-02-18T05:45:42Z</dc:date>
    </item>
    <item>
      <title>Re: Linker does not transition from Non Paged to Paged allocations</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176937#M6235</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You should use the&lt;/P&gt;&lt;P&gt;DEFAULT_ROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO&amp;nbsp; OS_PAGED_E0, OS_NONPAGED;&lt;/P&gt;&lt;P&gt;order.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I try to explain the reason why with the other order the linking does fail for certain setups.&lt;/P&gt;&lt;P&gt;The problem is that DEFAULT_ROM fills up OS_NONPAGED and only the last few bytes of that section may be available to subsequently allocate COPY (the COPY section gets allocated last as its content depends on the content of the other READ_WRITE sections).&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;With the (not recommended) order&lt;/P&gt;&lt;P&gt;DEFAULT_ROM&amp;nbsp; INTO&amp;nbsp; OS_NONPAGED, OS_PAGED_E0;&lt;/P&gt;&lt;P&gt;the linker to places all objects (functions) from DEFAULT_ROM into OS_NONPAGED until one function does not completely fit into OS_NONPAGED anymore. When this happens the linker switches the output to the next segment, here OS_PAGED_E0, and starts placing this function and the future objects in this segment. There are usually a few bytes (less than the size of the first function in OS_PAGED_E0) left in OS_NONPAGED. The linking will now only succeed if the COPY section fits into this gap.&lt;/P&gt;&lt;P&gt;The number of the remaining bytes is pretty unpredictability and therefore the linking success or failure can be triggered by a small change in the C code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The correct (and easy) way to fix this issue is to list the section which also gets COPY as the last one for any PLACEMENT is it used. With that setup the linking will only fail if there is really not enough space left.&lt;/P&gt;&lt;P&gt;In general I would recommend to list sections which can be used for different content behind sections which can only take some particular content. This is not only the case for banked vs non banked segments, but to give another example the S08 has zero page memory which can also be used to host non zero page variables, so those zero page segments can also be listed to receive non zero page content (which is a bit of a waste, but it is better to link that to fail).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;BTW: There are linker options to cause the linker to fill up the remaining bytes more efficiently. With those the linking would have failed more likely :smileyhappy:&lt;/P&gt;&lt;P&gt;BTW2: The content of the STARTUP, STRINGS and other generic sections are allocated in the order they are listed in the prm, so in this case before DEFAULT_ROM. The only two exceptions are COPY and the checksum sections, the content (and size) of those two depend on other sections which have to be placed first.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Daniel&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Feb 2010 14:05:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176937#M6235</guid>
      <dc:creator>CompilerGuru</dc:creator>
      <dc:date>2010-02-18T14:05:14Z</dc:date>
    </item>
    <item>
      <title>Re: Linker does not transition from Non Paged to Paged allocations</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176938#M6236</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Daniel, thanks for the explanation.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Feb 2010 20:43:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176938#M6236</guid>
      <dc:creator>isionous</dc:creator>
      <dc:date>2010-02-18T20:43:00Z</dc:date>
    </item>
    <item>
      <title>Re: Linker does not transition from Non Paged to Paged allocations</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176939#M6237</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Daniel, excellent explanation!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Feb 2010 03:33:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Linker-does-not-transition-from-Non-Paged-to-Paged-allocations/m-p/176939#M6237</guid>
      <dc:creator>ebrady</dc:creator>
      <dc:date>2010-02-19T03:33:04Z</dc:date>
    </item>
  </channel>
</rss>

