<?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中的主题 Modifying Memory Map in HED Controller</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Modifying-Memory-Map-in-HED-Controller/m-p/1902931#M19915</link>
    <description>&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P&gt;I am working with the HED controller, and I'm facing a space limitation issue. I am considering placing the firmware in the unpaged memory area and would like some insights on the potential implications of modifying the memory map.&lt;/P&gt;&lt;P&gt;Currently, the .prm file specifies the paged areas as follows:&lt;/P&gt;&lt;P&gt;```&lt;BR /&gt;PAGE_E2 = READ_ONLY 0xE28000 TO 0xE2BFFF;&lt;BR /&gt;PAGE_E3 = READ_ONLY 0xE38000 TO 0xE3BFFF;&lt;BR /&gt;PAGE_E4 = READ_ONLY 0xE48000 TO 0xE4BFFF;&lt;BR /&gt;```&lt;/P&gt;&lt;P&gt;According to the manual:&lt;/P&gt;&lt;P&gt;"The program page index register allows accessing up to 4 Mbyte of FLASH or ROM in the global memory map by using the eight-page index bits to page 16 Kbyte blocks into the program page window located in the CPU local memory map from address $8000 to address $BFFF (see Figure 1-16). The CPU has special access to read and write this register during execution of CALL and RTC instructions."&lt;/P&gt;&lt;P&gt;I am thinking of modifying the memory map to the following:&lt;/P&gt;&lt;P&gt;```&lt;BR /&gt;PAGE_E3 = READ_ONLY 0xE38000 TO 0xE47FFF;&lt;BR /&gt;```&lt;/P&gt;&lt;P&gt;In the .prm file, I don't see the space from 0xE3C000 to 0xE47FFF assigned to anything. However, the manual states:&lt;/P&gt;&lt;P&gt;"The upper 16-kilobyte block of the local CPU memory space ($C000–$FFFF) is unpaged. It is recommended that all reset and interrupt vectors point to locations in this area or to the other unpaged sections of the local CPU memory map."&lt;/P&gt;&lt;P&gt;Could anyone help me understand the potential issues, beyond timing and efficiency, that could arise from this change? Specifically, I am concerned about the possibility of overlapping areas that are assigned by default.&lt;/P&gt;&lt;P&gt;Appreciate your help and insights!&lt;/P&gt;&lt;P&gt;Thank you!&lt;/P&gt;&lt;P&gt;Madushan&lt;/P&gt;</description>
    <pubDate>Mon, 08 Jul 2024 20:09:14 GMT</pubDate>
    <dc:creator>Madushan</dc:creator>
    <dc:date>2024-07-08T20:09:14Z</dc:date>
    <item>
      <title>Modifying Memory Map in HED Controller</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Modifying-Memory-Map-in-HED-Controller/m-p/1902931#M19915</link>
      <description>&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P&gt;I am working with the HED controller, and I'm facing a space limitation issue. I am considering placing the firmware in the unpaged memory area and would like some insights on the potential implications of modifying the memory map.&lt;/P&gt;&lt;P&gt;Currently, the .prm file specifies the paged areas as follows:&lt;/P&gt;&lt;P&gt;```&lt;BR /&gt;PAGE_E2 = READ_ONLY 0xE28000 TO 0xE2BFFF;&lt;BR /&gt;PAGE_E3 = READ_ONLY 0xE38000 TO 0xE3BFFF;&lt;BR /&gt;PAGE_E4 = READ_ONLY 0xE48000 TO 0xE4BFFF;&lt;BR /&gt;```&lt;/P&gt;&lt;P&gt;According to the manual:&lt;/P&gt;&lt;P&gt;"The program page index register allows accessing up to 4 Mbyte of FLASH or ROM in the global memory map by using the eight-page index bits to page 16 Kbyte blocks into the program page window located in the CPU local memory map from address $8000 to address $BFFF (see Figure 1-16). The CPU has special access to read and write this register during execution of CALL and RTC instructions."&lt;/P&gt;&lt;P&gt;I am thinking of modifying the memory map to the following:&lt;/P&gt;&lt;P&gt;```&lt;BR /&gt;PAGE_E3 = READ_ONLY 0xE38000 TO 0xE47FFF;&lt;BR /&gt;```&lt;/P&gt;&lt;P&gt;In the .prm file, I don't see the space from 0xE3C000 to 0xE47FFF assigned to anything. However, the manual states:&lt;/P&gt;&lt;P&gt;"The upper 16-kilobyte block of the local CPU memory space ($C000–$FFFF) is unpaged. It is recommended that all reset and interrupt vectors point to locations in this area or to the other unpaged sections of the local CPU memory map."&lt;/P&gt;&lt;P&gt;Could anyone help me understand the potential issues, beyond timing and efficiency, that could arise from this change? Specifically, I am concerned about the possibility of overlapping areas that are assigned by default.&lt;/P&gt;&lt;P&gt;Appreciate your help and insights!&lt;/P&gt;&lt;P&gt;Thank you!&lt;/P&gt;&lt;P&gt;Madushan&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jul 2024 20:09:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Modifying-Memory-Map-in-HED-Controller/m-p/1902931#M19915</guid>
      <dc:creator>Madushan</dc:creator>
      <dc:date>2024-07-08T20:09:14Z</dc:date>
    </item>
    <item>
      <title>Re: Modifying Memory Map in HED Controller</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Modifying-Memory-Map-in-HED-Controller/m-p/1905144#M19952</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;the MCU is?&amp;nbsp; &amp;nbsp; MC9S12 xxxxx ?&lt;/P&gt;
&lt;P&gt;If it is XDP512 or XEP100 the memory map is attached.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Ladislav&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jul 2024 07:37:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Modifying-Memory-Map-in-HED-Controller/m-p/1905144#M19952</guid>
      <dc:creator>lama</dc:creator>
      <dc:date>2024-07-10T07:37:03Z</dc:date>
    </item>
    <item>
      <title>Re: Modifying Memory Map in HED Controller</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Modifying-Memory-Map-in-HED-Controller/m-p/1905536#M19954</link>
      <description>&lt;P&gt;Hi Lama,&lt;/P&gt;&lt;P&gt;Thank you very much for your response and the provided document. It is very helpful.&lt;/P&gt;&lt;P&gt;This is specifically for the HED MC9S12XDP512 controller.&lt;/P&gt;&lt;P&gt;Background:&lt;BR /&gt;I was just introduced to this project, and unfortunately, anyone previously involved in its development has left the company.&lt;BR /&gt;I am now trying to understand the memory allocation, as the code has exceeded the paged memory space.&lt;/P&gt;&lt;P&gt;When I reviewed the local memory map, I understand that the ranges from $4000 to $8000 and $C000 to ($FFFF - Reset Vector Space)&lt;BR /&gt;are not within the paged/PPAGE memory space. I do not understand how this unpaged memory space maps to the global addresses&lt;BR /&gt;(as shown in column 2 of the DOC-XDP512-MMC-Memory_Map-Common_Map-V5_0-MSExcel.xls). I am still reviewing the manual&lt;BR /&gt;MC9S12XDP512RMV2.pdf as well to understand this concept.&lt;/P&gt;&lt;P&gt;I wonder if there is a way to use or free up the unpaged Flash space for application code or the firmware.&lt;BR /&gt;Any assistance in achieving this would be greatly appreciated.&lt;/P&gt;&lt;P&gt;I attempted to change the memory map to utilize the unpaged Flash space as follows, and I can build the firmware without&lt;BR /&gt;any warnings or errors. However, I am unsure what potential issues this might cause or if there are any problems that I might&lt;BR /&gt;not notice.&lt;/P&gt;&lt;P&gt;Original Code:&lt;BR /&gt;PAGE_E2 = READ_ONLY 0xE28000 TO 0xE2BFFF;&lt;BR /&gt;PAGE_E3 = READ_ONLY 0xE38000 TO 0xE3CFFF;&lt;BR /&gt;PAGE_E4 = READ_ONLY 0xE48000 TO 0xE4BFFF;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Modified Code:&lt;BR /&gt;PAGE_E3 = READ_ONLY 0xE38000 TO 0xE3CFFF;&lt;/P&gt;&lt;P&gt;In the modified code segment: what is the address range w.r.t. global addressing the the range from 0xE3C000- E3CFFF is belong to?&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would appreciate any insights or advice on this matter.&lt;/P&gt;&lt;P&gt;The original .prm file is attached.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Thank you.&lt;/P&gt;&lt;P&gt;Madushan&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jul 2024 19:55:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Modifying-Memory-Map-in-HED-Controller/m-p/1905536#M19954</guid>
      <dc:creator>Madushan</dc:creator>
      <dc:date>2024-07-10T19:55:38Z</dc:date>
    </item>
    <item>
      <title>Re: Modifying Memory Map in HED Controller</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Modifying-Memory-Map-in-HED-Controller/m-p/1905555#M19955</link>
      <description>&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/37643"&gt;@lama&lt;/a&gt; Instead of replying to your response I have place the response in the main discussion above. Appreciate your support and please have a look.</description>
      <pubDate>Wed, 10 Jul 2024 19:57:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Modifying-Memory-Map-in-HED-Controller/m-p/1905555#M19955</guid>
      <dc:creator>Madushan</dc:creator>
      <dc:date>2024-07-10T19:57:17Z</dc:date>
    </item>
    <item>
      <title>Re: Modifying Memory Map in HED Controller</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Modifying-Memory-Map-in-HED-Controller/m-p/1916967#M20012</link>
      <description>&lt;P&gt;The memory window is always PPAGE_(8000-BFFF). There I no possibility to use global address space for code. It is possible to do it only for data because the MCU contains data access commands for global address.&lt;/P&gt;
&lt;P&gt;So, he code must be able to fit into the PPAGE pages. Also interrupt routines MUST start in the non-paged space C000-FFFF or 4000-7FFF(if enabled).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The prm file&amp;gt;&lt;/P&gt;
&lt;P&gt;You:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROM_C000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xC000 TO&amp;nbsp;&amp;nbsp; 0xEEFF;&lt;/P&gt;
&lt;P&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; VECTORS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xEF00 TO&amp;nbsp;&amp;nbsp; 0xEFFF; intentionally not defined: 'system' layer vector table */&lt;/P&gt;
&lt;P&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; ROM_BOOT&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; = READ_ONLY&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; 0xF000 TO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xFEFF;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Could be&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROM_C000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xC000 TO&amp;nbsp;&amp;nbsp; 0xEFFF;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;
&lt;P&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; VECTORS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = READ_ONLY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xEF00 TO&amp;nbsp;&amp;nbsp; 0xEFFF; intentionally not defined: 'system' layer vector table */&lt;/P&gt;
&lt;P&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; ROM_BOOT&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; = READ_ONLY&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; 0xF000 TO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xFEFF;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You ROM 6000 so I suppose you also use in compiler command line -OnB=b &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;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Moreover, I am not able how you use your data and code pragmas.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The most important is to generate *.map file and compare it with the expectations you programmed in the *.prm files and *.c files.&lt;/P&gt;
&lt;P&gt;Take it that *.prm file contains your expectations. *.map file contains what you really did and where it is placed. Then you can also see mistakes you did.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jul 2024 07:54:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Modifying-Memory-Map-in-HED-Controller/m-p/1916967#M20012</guid>
      <dc:creator>lama</dc:creator>
      <dc:date>2024-07-25T07:54:27Z</dc:date>
    </item>
  </channel>
</rss>

