<?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: HCS12XDP512 LARGE ARRAY USING GLOBAL ADDRESSING in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/HCS12XDP512-LARGE-ARRAY-USING-GLOBAL-ADDRESSING/m-p/185931#M7031</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&amp;nbsp;&lt;DIV&gt;&amp;gt;#pragma DATA_SEG __GPAGE_SEG GLOBAL_RAM&lt;BR /&gt;&amp;gt;struct T__LICODE __far Licode;&lt;BR /&gt;&lt;BR /&gt;The __far is not wrong, but not actually necessary as the __GPAGE_SEG implies far access. I would suggest to drop the __far, and only write it if you want a __far/global access to something not allocated __far/global.&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;gt;GLOBAL_RAM is placed in&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM_OF_GLOBAL =&amp;nbsp; READ_WRITE&amp;nbsp; 0xF81000'G TO 0xFB1FFF'G;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;That looks very suspicious, is probably wrong.&lt;BR /&gt;0xF81000 for RAM is a logical address (0xF81000'L), not a global one. The corresponding global address is 0xF8000'G. Likewise use 0xFBFFF'G instead of 0xFB1FFF.&lt;BR /&gt;Note that 0xF8000'G..0xFBFFF'G is a 16k area, so if you only need 8k, use just the half of it.&lt;BR /&gt;(0xF8000'G ..0xF9FFF'G).&lt;BR /&gt;&lt;BR /&gt;Mapping in between global and logical addresses is actually not that hard, there is also a simplistic executable at&lt;BR /&gt;"C:\Program Files\Freescale\CodeWarrior for HCS12 V4.7\Prog\hcs12xadrmap.exe"&lt;BR /&gt;which provides the basic translation via UI.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Daniel&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 16 Sep 2008 07:11:24 GMT</pubDate>
    <dc:creator>CompilerGuru</dc:creator>
    <dc:date>2008-09-16T07:11:24Z</dc:date>
    <item>
      <title>HCS12XDP512 LARGE ARRAY USING GLOBAL ADDRESSING</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/HCS12XDP512-LARGE-ARRAY-USING-GLOBAL-ADDRESSING/m-p/185930#M7030</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi, we use the 16 bit 9S12xDP512 µc.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;We want to use a 8K array (struct) in the paged RAM. We use this declaration&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;#pragma DATA_SEG __GPAGE_SEG GLOBAL_RAM&lt;BR /&gt;struct T__LICODE __far Licode;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;GLOBAL_RAM is placed in&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM_OF_GLOBAL =&amp;nbsp; READ_WRITE&amp;nbsp; 0xF81000'G TO 0xFB1FFF'G;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;We use codewarrior V4.6 developpment tools and Isystem Ione emulator.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;This declarations are correct? if no, &amp;nbsp;can we give us the good declarations?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thanks in advance.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Sep 2008 22:31:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/HCS12XDP512-LARGE-ARRAY-USING-GLOBAL-ADDRESSING/m-p/185930#M7030</guid>
      <dc:creator>PCC</dc:creator>
      <dc:date>2008-09-15T22:31:05Z</dc:date>
    </item>
    <item>
      <title>Re: HCS12XDP512 LARGE ARRAY USING GLOBAL ADDRESSING</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/HCS12XDP512-LARGE-ARRAY-USING-GLOBAL-ADDRESSING/m-p/185931#M7031</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&amp;nbsp;&lt;DIV&gt;&amp;gt;#pragma DATA_SEG __GPAGE_SEG GLOBAL_RAM&lt;BR /&gt;&amp;gt;struct T__LICODE __far Licode;&lt;BR /&gt;&lt;BR /&gt;The __far is not wrong, but not actually necessary as the __GPAGE_SEG implies far access. I would suggest to drop the __far, and only write it if you want a __far/global access to something not allocated __far/global.&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;gt;GLOBAL_RAM is placed in&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM_OF_GLOBAL =&amp;nbsp; READ_WRITE&amp;nbsp; 0xF81000'G TO 0xFB1FFF'G;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;That looks very suspicious, is probably wrong.&lt;BR /&gt;0xF81000 for RAM is a logical address (0xF81000'L), not a global one. The corresponding global address is 0xF8000'G. Likewise use 0xFBFFF'G instead of 0xFB1FFF.&lt;BR /&gt;Note that 0xF8000'G..0xFBFFF'G is a 16k area, so if you only need 8k, use just the half of it.&lt;BR /&gt;(0xF8000'G ..0xF9FFF'G).&lt;BR /&gt;&lt;BR /&gt;Mapping in between global and logical addresses is actually not that hard, there is also a simplistic executable at&lt;BR /&gt;"C:\Program Files\Freescale\CodeWarrior for HCS12 V4.7\Prog\hcs12xadrmap.exe"&lt;BR /&gt;which provides the basic translation via UI.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Daniel&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Sep 2008 07:11:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/HCS12XDP512-LARGE-ARRAY-USING-GLOBAL-ADDRESSING/m-p/185931#M7031</guid>
      <dc:creator>CompilerGuru</dc:creator>
      <dc:date>2008-09-16T07:11:24Z</dc:date>
    </item>
  </channel>
</rss>

