<?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: How to define and access a variable in paged ram?</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759371#M15196</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P style="border: 0px currentColor;"&gt;&lt;SPAN style="border: 0px currentColor; font-weight: inherit;"&gt;Do you mean linker error&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px currentColor;"&gt;&lt;SPAN style="border: 0px currentColor; font-weight: inherit;"&gt;L1128: Cutting value _Range beg data member from 0xFB1000 to 0x1000 ?&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px currentColor;"&gt;&lt;SPAN style="border: 0px currentColor; font-weight: inherit;"&gt;My comment: NO, there is no compile or link error. What I means is I want to:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px currentColor;"&gt;&lt;SPAN style="border: 0px currentColor; font-weight: inherit;"&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;astLecuDataPagedRam2[1000&lt;/SPAN&gt;&lt;SPAN style="border: 0px currentColor; color: #51626f; background-color: #ffffff;"&gt;] = 1, but infact make&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;astLecuDataPagedRam1[1000&lt;/SPAN&gt;&lt;SPAN style="border: 0px currentColor; color: #51626f; background-color: #ffffff;"&gt;] equal 1;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;OK. Since data has no far keyword and page access type (__RPAGE_SEG / __GPAGE_SEG) is not specified, top part of address is ignored, instead of 0xFB1000 you compiler uses 0x1000. Most likely both ..Ram1[] and ..Ram2[] have same lower 16bits of address.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;-PSegObj is indeed required for&amp;nbsp;__RPAGE_SEG and all paged variabels placed in the same placement PAGED_RAM. Please double check your observation. Perhaps my compiler is older than yours and -PSegObj is default behavior when -P switch is not specified. I'm using&amp;nbsp;compiler version&amp;nbsp;5.0.45&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;0xF01000 address is paged address, 0xF0 - page and 0x1000 - offset. Now, when talking about paged RAM, which page do you mean? R-page or G-page? And how compiler should know it, maybe you meant P-page? Global address is unique for each particular location, there's&amp;nbsp;no ambiguity. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;Problem with paged RAM segments is that you can't specify contiguous segment using paged address. There's a gap between 0xF01000..0xF01FFF segment and 0xF11000..0xF11FFF segment! In global address space there's no gap between them! First is&amp;nbsp;0F0000'G..0x0F0FFF'G&amp;nbsp; and second is 0x0F1000'G..0x0F1FFF'G . No gap between 0x0F0FFF and 0x0F1000.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;In mentioned figure is specified only global address of top of RAM (0x0F_FFFF = 0x0FFFF'G). &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;Nonpaged 0x2000 (rpages 0xFE, 0xFF)&amp;nbsp;-&amp;gt; 0x0FE000'G&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;Rpage 0xFD -&amp;gt; 0&lt;SPAN style="color: #51626f;"&gt;x0FD000'G&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;Rpage 0xFC -&amp;gt; 0&lt;SPAN style="color: #51626f;"&gt;x0FC000'G&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;..&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;Rpage 0xF1 -&amp;gt; 0x0F1000'G&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;..&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;Edward&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 26 Feb 2018 11:34:15 GMT</pubDate>
    <dc:creator>kef2</dc:creator>
    <dc:date>2018-02-26T11:34:15Z</dc:date>
    <item>
      <title>How to define and access a variable in paged ram?</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759366#M15191</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a problem. I need to define a variable lager than 4K, if I define as follow:&lt;/P&gt;&lt;P&gt;#pragma DATA_SEG PAGED_RAM&lt;BR /&gt;static char astLecuDataPagedRam[7360];&lt;BR /&gt;#pragma DATA_SEG DEFAULT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That leads to the complie error:Out of allocatin.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So I divided the&amp;nbsp;&lt;SPAN&gt;variable into 2 halves as &amp;nbsp;follows:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#pragma DATA_SEG PAGED_RAM&lt;BR /&gt;static char astLecuDataPagedRam1[3680];&lt;BR /&gt;static char astLecuDataPagedRam2[3680];&lt;BR /&gt;#pragma DATA_SEG DEFAULT&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Complie OK but access to&amp;nbsp;astLecuDataPagedRam2 will lead to&amp;nbsp;access to&amp;nbsp;&lt;SPAN&gt;astLecuDataPagedRam1,which I use this code:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;astLecuDataPagedRam2[1000&lt;SPAN&gt;] = 1;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;But infact will lead to: astLecuDataPagedRam1[&lt;SPAN&gt;1000&lt;/SPAN&gt;&lt;SPAN&gt;] = 1&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;My issue is :&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;1、How can I define a variable lager than 4K?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;2、Why access to&amp;nbsp;astLecuDataPagedRam2 will lead to access to&amp;nbsp;astLecuDataPagedRam1?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;The paged ram defined in prm file is as follow:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;SEGMENTS&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;RAM_F0 = READ_WRITE DATA_FAR 0xF01000 TO 0xF01FFF; &lt;BR /&gt; RAM_F1 = READ_WRITE DATA_FAR 0xF11000 TO 0xF11FFF; &lt;BR /&gt; RAM_F2 = READ_WRITE DATA_FAR 0xF21000 TO 0xF21FFF; &lt;BR /&gt; RAM_F3 = READ_WRITE DATA_FAR 0xF31000 TO 0xF31FFF; &lt;BR /&gt; RAM_F4 = READ_WRITE DATA_FAR 0xF41000 TO 0xF41FFF; &lt;BR /&gt; RAM_F5 = READ_WRITE DATA_FAR 0xF51000 TO 0xF51FFF; &lt;BR /&gt; RAM_F6 = READ_WRITE DATA_FAR 0xF61000 TO 0xF61FFF; &lt;BR /&gt; RAM_F7 = READ_WRITE DATA_FAR 0xF71000 TO 0xF71FFF; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;RAM_FC = READ_WRITE DATA_FAR 0xFC1000 TO 0xFC1FFF ALIGN 2[1:1]; /* is also mapped to XGATE: 0xC000..0xCFFF */&lt;BR /&gt; RAM_FD = READ_WRITE DATA_FAR 0xFD1000 TO 0xFD1FFF ALIGN 2[1:1]; /* is also mapped to XGATE: 0xD000..0xDFFF */&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;END&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;PLACEMENT&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;PAGED_RAM&amp;nbsp;INTO &amp;nbsp;RAM_FD, RAM_FC, RAM_F7, RAM_F6,RAM_F5, RAM_F4, RAM_F3, RAM_F2, RAM_F1, RAM_F0;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;END&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Feb 2018 10:48:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759366#M15191</guid>
      <dc:creator>赵子成</dc:creator>
      <dc:date>2018-02-20T10:48:11Z</dc:date>
    </item>
    <item>
      <title>Re: How to define and access a variable in paged ram?</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759367#M15192</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To use bigger arrays than can fit in 4K R-page window, you need to use global addressing. To be to allocate &amp;gt;4K data you would need to edit PRM file and for example comment out two &lt;SPAN&gt;RAM_F0 and RAM_F1 segments and create one bigger and continuous segment in global address space. 'G tells linker it's global address:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;RAM_F0F1 = READ_WRITE DATA_FAR 0xF0000'G TO 0xF1FFF'G; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Then you would need&amp;nbsp;to comment out all occurrences of F0 and F1 in PLACEMENT, create new PLACEMENT like &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;mybigpagedram INTO RAM_F0F1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Then you would need to use __GPAGE_SEG with your DATA_SEG. BTW you code should always specify which way you would like to access your paged RAM, RPAGE + 16 offset or GPAGE + global addressing instructions. For global addressing (you have no choice for big array in paged RAM, only __GPAGE_SEG, not RPAGE_SEG):&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;#pragma DATA_SEG __GPAGE_SEG mybigpagedram &lt;BR /&gt;static char astLecuDataPagedRam[7360];&lt;BR /&gt;#pragma DATA_SEG DEFAULT&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;If you would need to share your non static scope paged variables, you had to round you paged vars declarations in header file with correct #pragma DATA_SEG __GPAGE_SEG. __GPAGE_SEG or __RPAGE_SEG have to be shared, else compiler may fail using proper addressing.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Regarding splitting your big array into two smaller. It fails because you need to add -PSegObj to compiler command line. See compiler options-&amp;gt;code generation-&amp;gt;assume objects are in same page for:. Placing all paged RAM's into same placement doesn't provide compiler with what page particular variable is placed in. You either need to use different PLACEMENT's for each R-page, so that compiler would be right assuming that one PLACEMENT never crosses R-page boundary and all objects from the same PLACEMENT are in the same RPAGE. Or, you may keep using PAGED_RAM placement but tell compiler it should always reload RPAGE accessing different paged variables. You decide what is better for You.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Perhaps try using search on top right corner and look for -PSegObj, 'G and similar topics. Perhaps this will help&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/message/611605?commentID=611605#comment-611605"&gt;https://community.nxp.com/message/611605?commentID=611605#comment-611605&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Edward&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Feb 2018 13:50:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759367#M15192</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2018-02-22T13:50:54Z</dc:date>
    </item>
    <item>
      <title>Re: How to define and access a variable in paged ram?</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759368#M15193</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Edward,&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&amp;nbsp;Thanks for your detail explaination.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt; I still have some doubts about paged ram.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;1、I split the big array into 2 smaller arraies, it seems that I must use __RPAGE_SEG(or maybe I can use __far when I define the var), if I define the 2 arraies like this:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&amp;nbsp;&lt;SPAN&gt;#pragma DATA_SEG PAGED_RAM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;static char astLecuDataPagedRam1[3680];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;static char astLecuDataPagedRam2[3680];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#pragma DATA_SEG DEFAULT&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Even if I add the "-PSegObj" to the Command Line, I still get the error: A&lt;SPAN&gt;ccess to&amp;nbsp;astLecuDataPagedRam2 will lead to access to&amp;nbsp;astLecuDataPagedRam1.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;If I define like this:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;SPAN style="background-color: #ffffff;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;#pragma DATA_SEG &lt;SPAN style="background-color: #ffffff;"&gt; __RPAGE_SEG&amp;nbsp;&lt;/SPAN&gt;PAGED_RAM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;static char astLecuDataPagedRam1[3680];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;static char astLecuDataPagedRam2[3680];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#pragma DATA_SEG DEFAULT&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;SPAN&gt;I don't need to add&amp;nbsp;&lt;SPAN style="background-color: #ffffff;"&gt; the "&lt;/SPAN&gt;&lt;SPAN style="background-color: #ffffff;"&gt;-PSegObj" to the Command Line, I can get the right result.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;SPAN style="background-color: #ffffff;"&gt;2、If I use the global addressing, your advise is merging the&amp;nbsp;RAM_F0 and RAM_F1 and&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="font-weight: inherit;"&gt;create one bigger and continuous segment in global address space. 'G tells linker it's global address:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;RAM_F0F1 = READ_WRITE DATA_FAR 0xF0000'G TO 0xF1FFF'G;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;My question is Can I use others address like this:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN&gt;RAM_F0F1 = READ_WRITE DATA_FAR 0xF01000'G TO 0xF02FFF'G;?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 25 Feb 2018 04:51:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759368#M15193</guid>
      <dc:creator>赵子成</dc:creator>
      <dc:date>2018-02-25T04:51:55Z</dc:date>
    </item>
    <item>
      <title>Re: How to define and access a variable in paged ram?</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759369#M15194</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN style="color: #646464; font-size: large;"&gt;赵子成,&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;#pragma DATA_SEG PAGED_RAM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;static char astLecuDataPagedRam1[3680];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;static char astLecuDataPagedRam2[3680];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#pragma DATA_SEG DEFAULT&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Even if I add the "-PSegObj" to the Command Line, I still get the error: A&lt;SPAN&gt;ccess to&amp;nbsp;astLecuDataPagedRam2 will lead to access to&amp;nbsp;astLecuDataPagedRam1.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;Do you mean linker error&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;L1128: Cutting value _Range beg data member from 0xFB1000 to 0x1000 ?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;startup.c&amp;nbsp;without __FAR_DATA defined assumes all data to be initialized are "near" and all data addresses are &amp;lt;0x10000. It is bit faster and OK&amp;nbsp;until you use paged RAM. And once you start using paged RAM, you need to make __FAR_DATA defined, please add&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN style="background-color: #ffffff; color: #51626f;"&gt;&lt;SPAN&gt; -D&lt;SPAN style="color: #51626f;"&gt;__FAR_DATA &lt;/SPAN&gt;to compiler command line.&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN style="background-color: #ffffff; color: #51626f;"&gt;&lt;SPAN style="background-color: #ffffff; color: #51626f;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN style="background-color: #ffffff; color: #51626f;"&gt;&lt;SPAN style="background-color: #ffffff; color: #51626f;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;If I define like this:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;SPAN style="background-color: #ffffff;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;#pragma DATA_SEG &lt;SPAN style="background-color: #ffffff;"&gt; __RPAGE_SEG&amp;nbsp;&lt;/SPAN&gt;PAGED_RAM&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;static char astLecuDataPagedRam1[3680];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;static char astLecuDataPagedRam2[3680];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#pragma DATA_SEG DEFAULT&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&lt;SPAN&gt;I don't need to add&amp;nbsp;&lt;SPAN style="background-color: #ffffff;"&gt; the "&lt;/SPAN&gt;&lt;SPAN style="background-color: #ffffff;"&gt;-PSegObj" to the Command Line, I can get the right result.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;No, you can't. &lt;SPAN style="color: #51626f;"&gt;astLecuDataPagedRam1[0] = 5 followed by astLecuDataPagedRam2[0]=5 will write to the same location! Just try it. It may seem being OK if you interleave accesses to astLecuDataPagedRam1 and astLecuDataPagedRam2 with some other code, ot use &lt;SPAN style="color: #51626f;"&gt;astLecuDataPagedRam1&lt;/SPAN&gt; and &lt;SPAN style="color: #51626f;"&gt;astLecuDataPagedRam2 in different routines,&lt;/SPAN&gt;&amp;nbsp;so compiler may decide it is unsafe to assume RPAGE didn't change and will reload RPAGE with correct setting...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI style="border: 0px currentColor;"&gt;&lt;SPAN style="border: 0px currentColor; font-weight: inherit;"&gt;My question is Can I use others address like this:&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="border: 0px currentColor;"&gt;&lt;SPAN style="border: 0px currentColor; font-weight: inherit;"&gt;&lt;SPAN&gt;RAM_F0F1 = READ_WRITE DATA_FAR 0xF01000'G TO 0xF02FFF'G;?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN style="color: #51626f;"&gt;0xF01000'G is non existing global address. See Figure 1-2. MC9S12XE100 Global Memory Map in S12XE datasheet. Top global address is 0x7FFFFF'G. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f;"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f;"&gt;Edward&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Feb 2018 08:21:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759369#M15194</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2018-02-26T08:21:14Z</dc:date>
    </item>
    <item>
      <title>Re: How to define and access a variable in paged ram?</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759370#M15195</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN style="color: #51626f; background-color: #ffffff; font-weight: normal;"&gt;Edward,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;Do you mean linker error&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;L1128: Cutting value _Range beg data member from 0xFB1000 to 0x1000 ?&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;My comment: NO, there is no compile or link error. What I means is I want to:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;astLecuDataPagedRam2[1000&lt;/SPAN&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;] = 1, but infact make&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;astLecuDataPagedRam1[1000&lt;/SPAN&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;] equal 1;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="background-color: #ffffff; border: 0px; color: #51626f; font-weight: inherit;"&gt;&lt;SPAN&gt;startup.c&amp;nbsp;without __FAR_DATA defined assumes all data to be initialized are "near" and all data addresses are &amp;lt;0x10000. It is bit faster and OK&amp;nbsp;until you use paged RAM. And once you start using paged RAM, you need to make __FAR_DATA defined, please add&lt;/SPAN&gt;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt; -D&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;__FAR_DATA &lt;/SPAN&gt;to compiler command line.&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="border: 0px; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;My comment:Yes, I have added &amp;nbsp;&lt;SPAN style="background-color: #ffffff;"&gt;-D&lt;/SPAN&gt;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;__FAR_DATA to command line at the original time.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="border: 0px; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;&lt;SPAN style="background-color: #ffffff;"&gt;No, you can't. &lt;/SPAN&gt;&lt;SPAN style="background-color: #ffffff; border: 0px;"&gt;astLecuDataPagedRam1[0] = 5 followed by astLecuDataPagedRam2[0]=5 will write to the same location! Just try it. It may seem being OK if you interleave accesses to astLecuDataPagedRam1 and astLecuDataPagedRam2 with some other code, ot use &lt;SPAN style="border: 0px; font-weight: inherit;"&gt;astLecuDataPagedRam1&lt;/SPAN&gt; and &lt;SPAN style="border: 0px; font-weight: inherit;"&gt;astLecuDataPagedRam2 in different routines,&lt;/SPAN&gt;&amp;nbsp;so compiler may decide it is unsafe to assume RPAGE didn't change and will reload RPAGE with correct setting...&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="background-color: #ffffff; border: 0px; color: #51626f; font-weight: inherit;"&gt;My comment: I just access&amp;nbsp;&lt;SPAN&gt;astLecuDataPagedRam1 and&amp;nbsp;&lt;SPAN style="background-color: #ffffff;"&gt;astLecuDataPagedRam2 in the initial code, It is OK.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="background-color: #ffffff; border: 0px; color: #51626f; font-weight: inherit;"&gt;&lt;SPAN style="background-color: #ffffff;"&gt;For example, I make&amp;nbsp;astLecuDataPagedRam2[1000] equal 5, it is really become 5, and the&amp;nbsp;astLecuDataPagedRam1[1000] is 0, so I said&amp;nbsp;I could get the right result.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="background-color: #ffffff; border: 0px; color: #51626f; font-weight: inherit;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="background-color: #ffffff; border: 0px; color: #51626f; font-weight: inherit;"&gt;&lt;SPAN style="background-color: #ffffff;"&gt;0xF01000'G is non existing global address. See Figure 1-2. MC9S12XE100 Global Memory Map in S12XE datasheet. Top global address is 0x7FFFFF'G.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="background-color: #ffffff; border: 0px; color: #51626f; font-weight: inherit;"&gt;&lt;SPAN style="background-color: #ffffff;"&gt;My question is why we can use&amp;nbsp;0xF01000、0xF11000、0xF21000、0xF31000......if we use &lt;SPAN&gt;RPAGE, I can't see these addresses in&amp;nbsp;Figure 1-2.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="background-color: #ffffff; border: 0px; color: #51626f; font-weight: inherit;"&gt;&lt;SPAN style="background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="background-color: #ffffff; border: 0px; color: #51626f; font-weight: inherit;"&gt;&lt;SPAN style="background-color: #ffffff;"&gt;&lt;SPAN&gt;Thanks.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Feb 2018 09:51:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759370#M15195</guid>
      <dc:creator>赵子成</dc:creator>
      <dc:date>2018-02-26T09:51:46Z</dc:date>
    </item>
    <item>
      <title>Re: How to define and access a variable in paged ram?</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759371#M15196</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P style="border: 0px currentColor;"&gt;&lt;SPAN style="border: 0px currentColor; font-weight: inherit;"&gt;Do you mean linker error&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px currentColor;"&gt;&lt;SPAN style="border: 0px currentColor; font-weight: inherit;"&gt;L1128: Cutting value _Range beg data member from 0xFB1000 to 0x1000 ?&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px currentColor;"&gt;&lt;SPAN style="border: 0px currentColor; font-weight: inherit;"&gt;My comment: NO, there is no compile or link error. What I means is I want to:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px currentColor;"&gt;&lt;SPAN style="border: 0px currentColor; font-weight: inherit;"&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;astLecuDataPagedRam2[1000&lt;/SPAN&gt;&lt;SPAN style="border: 0px currentColor; color: #51626f; background-color: #ffffff;"&gt;] = 1, but infact make&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;astLecuDataPagedRam1[1000&lt;/SPAN&gt;&lt;SPAN style="border: 0px currentColor; color: #51626f; background-color: #ffffff;"&gt;] equal 1;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;OK. Since data has no far keyword and page access type (__RPAGE_SEG / __GPAGE_SEG) is not specified, top part of address is ignored, instead of 0xFB1000 you compiler uses 0x1000. Most likely both ..Ram1[] and ..Ram2[] have same lower 16bits of address.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;-PSegObj is indeed required for&amp;nbsp;__RPAGE_SEG and all paged variabels placed in the same placement PAGED_RAM. Please double check your observation. Perhaps my compiler is older than yours and -PSegObj is default behavior when -P switch is not specified. I'm using&amp;nbsp;compiler version&amp;nbsp;5.0.45&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;0xF01000 address is paged address, 0xF0 - page and 0x1000 - offset. Now, when talking about paged RAM, which page do you mean? R-page or G-page? And how compiler should know it, maybe you meant P-page? Global address is unique for each particular location, there's&amp;nbsp;no ambiguity. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;Problem with paged RAM segments is that you can't specify contiguous segment using paged address. There's a gap between 0xF01000..0xF01FFF segment and 0xF11000..0xF11FFF segment! In global address space there's no gap between them! First is&amp;nbsp;0F0000'G..0x0F0FFF'G&amp;nbsp; and second is 0x0F1000'G..0x0F1FFF'G . No gap between 0x0F0FFF and 0x0F1000.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;In mentioned figure is specified only global address of top of RAM (0x0F_FFFF = 0x0FFFF'G). &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;Nonpaged 0x2000 (rpages 0xFE, 0xFF)&amp;nbsp;-&amp;gt; 0x0FE000'G&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;Rpage 0xFD -&amp;gt; 0&lt;SPAN style="color: #51626f;"&gt;x0FD000'G&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;Rpage 0xFC -&amp;gt; 0&lt;SPAN style="color: #51626f;"&gt;x0FC000'G&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;..&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;Rpage 0xF1 -&amp;gt; 0x0F1000'G&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;..&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px currentColor; background-color: #ffffff; color: #51626f; font-weight: inherit;"&gt;Edward&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Feb 2018 11:34:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759371#M15196</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2018-02-26T11:34:15Z</dc:date>
    </item>
    <item>
      <title>Re: How to define and access a variable in paged ram?</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759372#M15197</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm having a similar problem with accessing paged ram.&amp;nbsp; In my prm file I have &lt;/P&gt;&lt;P&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; /* when using banked addressing for variable data, make sure to specify&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the option -D__FAR_DATA on the compiler command line */&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM_F8, RAM_F9, RAM_FA, RAM_FB, RAM_FC, RAM_FD;&lt;/P&gt;&lt;P&gt;where&lt;/P&gt;&lt;P&gt;/* paged 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1000 TO&amp;nbsp;&amp;nbsp; 0x1FFF; addressed through RPAGE */&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 0xFD1FFF;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have the -D __FAR_DATA declared in the compiler command line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The structure is declared like this:&lt;/P&gt;&lt;P&gt;#pragma DATA_SEG PAGED_RAM&lt;BR /&gt;TBatteryInfo BatteryInfo;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Battery Status information&lt;BR /&gt;#pragma DATA_SEG DEFAULT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and in the .h file as&lt;/P&gt;&lt;P&gt;#pragma DATA_SEG PAGED_RAM&lt;BR /&gt;extern TBatteryInfo BatteryInfo;&amp;nbsp;// Battery Status information&lt;BR /&gt;#pragma DATA_SEG DEFAULT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Once compiled and programmed into the 9S12xdp512 using the debugger I see that the BatteryInfo structure is located at 0xF81200, size 379.&amp;nbsp; A right click on the variable and show location brings up that area in the memory debug window.&amp;nbsp; A breakpoint at the point where I access it shows the correct 0x1206 offset to access a structure element but the code isn't using RPAGE which happens to be set at FD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How do I tell the compiler I want it to load the RPAGE register?&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;John&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2018 05:53:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759372#M15197</guid>
      <dc:creator>jcdammeyer</dc:creator>
      <dc:date>2018-05-10T05:53:52Z</dc:date>
    </item>
    <item>
      <title>Re: How to define and access a variable in paged ram?</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759373#M15198</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi John,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your #pragma only feeds linker with information where to link your struct to. Compiler is left unaware how this thing in paged RAM should be accessed. You either should use far keyword or __RPAGE_SEG / __GPAGE_SEG in your #pragma. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1)&lt;/P&gt;&lt;P&gt;#pragma DATA_SEG PAGED_RAM&lt;BR /&gt;far TBatteryInfo BatteryInfo;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Battery Status information&lt;BR /&gt;#pragma DATA_SEG DEFAULT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in case far is used, #pragmas in header won't be necessary, extern far would be enough&lt;/P&gt;&lt;P&gt;extern far TBatteryInfo BatteryInfo;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Battery Status information&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2.a)&lt;/P&gt;&lt;P&gt;#pragma DATA_SEG __RPAGE_SEG PAGED_RAM&lt;BR /&gt;TBatteryInfo BatteryInfo;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Battery Status information&lt;/P&gt;&lt;P&gt;#pragma DATA_SEG DEFAULT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#pragma DATA_SEG ... is information for linker where to place&lt;/P&gt;&lt;P&gt;__RPAGE_SEG is information for compiler, how to access, RPAGE + offset&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2.b)&lt;/P&gt;&lt;P&gt;#pragma DATA_SEG __GPAGE_SEG PAGED_RAM&lt;BR /&gt;TBatteryInfo BatteryInfo;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Battery Status information&lt;BR /&gt;#pragma DATA_SEG DEFAULT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;__GPAGE_SEG tell compiler to use global addressing instructions and GPAGE register&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In case far is not used, #pragma with proper __?PAGE_SEG&amp;nbsp;is necessary in header file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edward&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2018 06:32:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759373#M15198</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2018-05-10T06:32:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to define and access a variable in paged ram?</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759374#M15199</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks. Many hours later into the early morning, after more research I realized that I was just not &lt;EM&gt;seeing&lt;/EM&gt; the __RPAGE_SEG in the other examples.&amp;nbsp; It took the step by step instructions in TN238.pdf for it to finally sink in.&amp;nbsp; &lt;/P&gt;&lt;P&gt;That did create a side effect as several of the buffers I'd created were also in my PAGED_RAM so the first error was that PAGED_RAM was already defined differently elsewhere.&amp;nbsp; Trouble was, those buffers are used by printf(), memcpy() and my own&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PrintString( char devNumber, char * buf);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PrintString is called with both&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;/P&gt;&lt;P&gt;PutString(COM1_NDX, "reset\r");&lt;/P&gt;&lt;P&gt;or&lt;/P&gt;&lt;P&gt;PutString(COM1_NDX,(PCHAR)OpenlogFilename);&lt;/P&gt;&lt;P&gt;or&lt;/P&gt;&lt;P&gt;PutString(USB_NDX, (PCHAR)StagingBuffer);&lt;/P&gt;&lt;P&gt;where StagingBuffer was the array of charcters that was declared in the PAGED_RAM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To make the code compile I had to remove StagingBuffer from PAGED_RAM and make it much smaller to remove the out of ram memory error.&lt;/P&gt;&lt;P&gt;I've not yet tried changing the function definition to be PrintString( char devNumber, char * __rptr buf); but I don't see how that will work for printf() nor for the literal strings.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'll check that out this morning. Do you have a suggestion for printf()?&amp;nbsp; I use&amp;nbsp;sprint() to the output_buffer which was in PAGED_RAM is done quite a bit.&amp;nbsp; But as it turned out it wasn't stepping on anything.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;John&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2018 16:03:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759374#M15199</guid>
      <dc:creator>jcdammeyer</dc:creator>
      <dc:date>2018-05-10T16:03:29Z</dc:date>
    </item>
    <item>
      <title>Re: How to define and access a variable in paged ram?</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759375#M15200</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi John,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It depends. You may like to recompile library with, IIRC, LIBDEF_PRINTF_FAR_PTR defined, which&amp;nbsp;will add new&amp;nbsp;%S format specifier... You may also consider large memory model, in which everything is far. You may&amp;nbsp;also set RPAGE somehow and call printf ignoring warning about pointer conversion, like below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#pragma DATA_SEG __RPAGE_SEG PAGED_RAM&lt;BR /&gt;char str1[0x1000] = "abcd\r";&lt;BR /&gt;char str2[0x1000] = "efgh\r";&lt;/P&gt;&lt;P&gt;#pragma DATA_SEG DEFAULT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#define SetRPAGE(str) asm("LDAB \043PAGE(" #str ")"); asm STAB RPAGE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; SetRPAGE(str1);&lt;BR /&gt;&amp;nbsp; printf(str1);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp; SetRPAGE(str2);&lt;BR /&gt;&amp;nbsp; printf(str2);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Edward&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 May 2018 18:39:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759375#M15200</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2018-05-10T18:39:06Z</dc:date>
    </item>
    <item>
      <title>Re: How to define and access a variable in paged ram?</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759376#M15201</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you.&amp;nbsp; I've been playing around with that idea and looking at the compiled code.&amp;nbsp; I'm caught between the proverbial rock and a hard place though.&amp;nbsp; There isn't a budget to upgrade to the full compiler so I'm stuck with 64K.&amp;nbsp; &amp;nbsp;But I'm also running at about 60.5K worth of code.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;One option is to return to the approach I had when I used the free 32K compiler for this project.&amp;nbsp; Five CAN bus channels, one for each ring.&amp;nbsp; My own PutDec, PutHex, PutString, PutBuffer. &amp;nbsp;Then as we repurposed the hardware I took the easy way and changed to using sprintf since suddenly the extra 32K was a massive amount of extra flash.(&lt;A href="http://www.autoartisans.com/"&gt;&lt;SPAN style="color: #0066cc; text-decoration: underline;"&gt;150 CAN based lamps per ring, 5 CAN channels&lt;/SPAN&gt;&lt;/A&gt;)&lt;/P&gt;&lt;P&gt;Now as the client keeps adding features the battle to keep it under 64K is becoming more work and it's likely the full compiler with the interrupt routines and buffers in direct memory and the less important diagnostic and logging strings put in paged memory accessed with far pointers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I strip all sprintf and printf out, I then can force page operations without the warning which I don't want to ignore.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You've been very helpful. Thank you.&lt;/P&gt;&lt;P&gt;John&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 May 2018 03:14:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759376#M15201</guid>
      <dc:creator>jcdammeyer</dc:creator>
      <dc:date>2018-05-14T03:14:57Z</dc:date>
    </item>
    <item>
      <title>Re: How to define and access a variable in paged ram?</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759377#M15202</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;without the warning which I don't want to ignore.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CW compiler is good in&amp;nbsp;that each warning can be disabled or even turned into an error if you wish. Either globally or for just a few lines of code:&lt;/P&gt;&lt;P&gt;#pragma push&lt;BR /&gt;#pragma MESSAGE DISABLE C1860&lt;BR /&gt;&amp;nbsp; printf(str1);&lt;BR /&gt;#pragma pop&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've lost your point about why 64K limit would matter here. Do you mean it doesn't allow you to recompile library for LIBDEF_PRINTF_FAR_PTR? Or you mean that code with RPAGE pointers is much bigger?&lt;/P&gt;&lt;P&gt;BTW what about putting your big data into asm files? CW 64K limit&amp;nbsp;applies only to C files and o(bject) files made from C files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Edward&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 May 2018 08:43:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759377#M15202</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2018-05-14T08:43:20Z</dc:date>
    </item>
    <item>
      <title>Re: How to define and access a variable in paged ram?</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759378#M15203</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks.&amp;nbsp; I'm going to guess that once I change over to FAR that the overall program will become too large.&amp;nbsp; I think I need to lobby my client to just bite the bullet and buy the full compiler.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 May 2018 15:55:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/How-to-define-and-access-a-variable-in-paged-ram/m-p/759378#M15203</guid>
      <dc:creator>jcdammeyer</dc:creator>
      <dc:date>2018-05-14T15:55:39Z</dc:date>
    </item>
  </channel>
</rss>

