<?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: executing function in paged RAM (S12X)</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/executing-function-in-paged-RAM-S12X/m-p/634729#M13538</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;The PC uses PPAGE and offset to address program space. The offset can be between 0000~FFFF.&lt;BR /&gt;On the basis of offset address the Core recognizes whether program is addresses by short or far address.&lt;BR /&gt;If the offset is between range 8000~BFFF then program address consist of PPAGE_OFFSET. Otherwise, near address is used.&lt;BR /&gt;&lt;SPAN&gt;If the address is not implemented internally then it is moved to external lines. (&lt;/SPAN&gt;&lt;A class="jive-link-wiki-small" data-containerid="11493" data-containertype="14" data-objectid="93594" data-objecttype="102" href="https://community.nxp.com/docs/DOC-93594"&gt;https://community.nxp.com/docs/DOC-93594&lt;/A&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;BR /&gt;If you have connected external RAM or another type of memory to the external bus and the bus is enabled then you can run the code out of external space &lt;BR /&gt;(00~BF)_(8000 ~ BFFF) \CS0 is active&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For data access (not program) there are more accessible spaces because in this case we can use global addressing for R/W.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;As a program RAM you can use internally:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Buffer RAM 0C00-0FFF if not used for another purposes&lt;BR /&gt;- RAM 4000~FFFF accessible by XGATE as well as CPU&lt;BR /&gt;- RAM ..RPAGE address (F8~FF)_(1000~1FFF). It is visible only half of them for CPU as described in previous item. For XGATE it is visible entire but at XGATE addresses 8000~FFFF.&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So if you need more RAM for code execution I would suggest you to go to XGATE and start required functions by SWI. (XGATE is interrupt driven peripheral)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you want to see address space in global, look into attachment.&lt;/P&gt;&lt;P&gt;best regards,&lt;/P&gt;&lt;P&gt;Ladislav&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 22 Dec 2016 10:56:21 GMT</pubDate>
    <dc:creator>lama</dc:creator>
    <dc:date>2016-12-22T10:56:21Z</dc:date>
    <item>
      <title>executing function in paged RAM (S12X)</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/executing-function-in-paged-RAM-S12X/m-p/634728#M13537</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm using S12XEP100 in large memory model and i'm trying to use 0xFF Flash page relocate to 4 paged RAM (0xFC to 0xFF)&lt;/P&gt;&lt;P&gt;ROM_RELOC = READ_ONLY &amp;nbsp; &amp;nbsp; 0x7FC400'G TO 0x7FE3FF'G &amp;nbsp;RELOCATE_TO 0xFC400'G;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;At startup ROM code is copyied on RAM, then code (main function) relocate in RAM is executed.&amp;nbsp;&lt;/P&gt;&lt;P&gt;main &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;7FCF70'G &amp;nbsp; &amp;nbsp; &amp;nbsp;83 &amp;nbsp; &amp;nbsp; 131 &amp;nbsp; &amp;nbsp; &amp;nbsp; 2 &amp;nbsp; .text &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FCF70'G&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;CALL &amp;nbsp;main,PAGE(main)&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;CALL 0x1F70,0xFC is executing and PPAGE is setting to 0xFC but RPAGE is not manage and&amp;nbsp;the code is not correctly execute.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is it possible to use paged RAM to execute code ?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Arnaud Grégoire&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Dec 2016 07:49:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/executing-function-in-paged-RAM-S12X/m-p/634728#M13537</guid>
      <dc:creator>arnaudgregoire</dc:creator>
      <dc:date>2016-12-22T07:49:39Z</dc:date>
    </item>
    <item>
      <title>Re: executing function in paged RAM (S12X)</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/executing-function-in-paged-RAM-S12X/m-p/634729#M13538</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;The PC uses PPAGE and offset to address program space. The offset can be between 0000~FFFF.&lt;BR /&gt;On the basis of offset address the Core recognizes whether program is addresses by short or far address.&lt;BR /&gt;If the offset is between range 8000~BFFF then program address consist of PPAGE_OFFSET. Otherwise, near address is used.&lt;BR /&gt;&lt;SPAN&gt;If the address is not implemented internally then it is moved to external lines. (&lt;/SPAN&gt;&lt;A class="jive-link-wiki-small" data-containerid="11493" data-containertype="14" data-objectid="93594" data-objecttype="102" href="https://community.nxp.com/docs/DOC-93594"&gt;https://community.nxp.com/docs/DOC-93594&lt;/A&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;BR /&gt;If you have connected external RAM or another type of memory to the external bus and the bus is enabled then you can run the code out of external space &lt;BR /&gt;(00~BF)_(8000 ~ BFFF) \CS0 is active&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For data access (not program) there are more accessible spaces because in this case we can use global addressing for R/W.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;As a program RAM you can use internally:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Buffer RAM 0C00-0FFF if not used for another purposes&lt;BR /&gt;- RAM 4000~FFFF accessible by XGATE as well as CPU&lt;BR /&gt;- RAM ..RPAGE address (F8~FF)_(1000~1FFF). It is visible only half of them for CPU as described in previous item. For XGATE it is visible entire but at XGATE addresses 8000~FFFF.&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So if you need more RAM for code execution I would suggest you to go to XGATE and start required functions by SWI. (XGATE is interrupt driven peripheral)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you want to see address space in global, look into attachment.&lt;/P&gt;&lt;P&gt;best regards,&lt;/P&gt;&lt;P&gt;Ladislav&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Dec 2016 10:56:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/executing-function-in-paged-RAM-S12X/m-p/634729#M13538</guid>
      <dc:creator>lama</dc:creator>
      <dc:date>2016-12-22T10:56:21Z</dc:date>
    </item>
  </channel>
</rss>

