<?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>MQX Software SolutionsのトピックMemory overlap in MRAM</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/Memory-overlap-in-MRAM/m-p/204675#M4767</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have been doing some debugging on our application from MRAM (MQX3.5.1, CW7.1.2, 52259evb).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a table in MRAM at 0x1005A000. When a run my full application code, somehow the data at 0x1005A000 gets overwritten with some data (AES_KEY_TABLE below). The data is dumped to printf and its wrong, the debugger also shows the table partially overwritten.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the memory map from my xMAP&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Memory map:&lt;BR /&gt;&amp;nbsp; v_addr&amp;nbsp;&amp;nbsp; p_addr&amp;nbsp;&amp;nbsp; size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name&lt;BR /&gt;&amp;nbsp; 10000000 10000000 00000400 .vectors&amp;nbsp;&amp;nbsp; vectorrom&lt;BR /&gt;&amp;nbsp; 10000400 10000400 00000018 .cfmprotect cfmprotrom&lt;BR /&gt;&amp;nbsp; 10000420 10000420 00000202 .Master_Boot_Page Master_Boot&lt;BR /&gt;&amp;nbsp; 10001000 10001000 00049728 .main_application MRAM&lt;BR /&gt;&amp;nbsp; 1005A000 1005A000 00003828 .AES_KEY_TABLE_Page AES_KEY_TABLE&lt;BR /&gt;&amp;nbsp; 20000000 1004A728 0000073C .main_application_data ram&lt;BR /&gt;&amp;nbsp; 2000073C 1004AE64 00000018 .romp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ram&lt;BR /&gt;&amp;nbsp; 20000754 20000754 00000B10 .main_application_bss ram&lt;BR /&gt;&amp;nbsp; 20001264 20001264 00000000 .kernel_data ram&lt;BR /&gt;&amp;nbsp; 2000FFF0 2000FFF0 00000000 .end_of_kernel_data end_of_kd&lt;BR /&gt;&amp;nbsp; 2000FA00 2000FA00 00000000 .boot_stack bstack&lt;BR /&gt;&amp;nbsp; 2000FBFF 2000FBFF 00000000 .end_of_boot_stack end_bstack&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My understanding to working out how much memory there is between MRAM base and AES table is:&lt;/P&gt;&lt;P&gt;MRAM BASE (0x10001000) +&lt;/P&gt;&lt;P&gt;main_application MRAM (0x49728) +&lt;/P&gt;&lt;P&gt;main_application_data ram (0x73C) +&lt;/P&gt;&lt;P&gt;.romp ram (0x18) 00049728&lt;/P&gt;&lt;P&gt;= 0x1004AE7C.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is well away from 0x1005A000, viewing memory via the debugger shows the memory overwritten up to around address 1005A710.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I cannot think of anything else... Unless MRAM is being used as SRAM during MRAM debug? or maybe romp (rom to ram) is causing the problem?How do I check?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PS, to test, I break on the first line in MAIN_TASK and use the 'view memory' function.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 02 Jun 2010 09:19:12 GMT</pubDate>
    <dc:creator>CarlFST60L</dc:creator>
    <dc:date>2010-06-02T09:19:12Z</dc:date>
    <item>
      <title>Memory overlap in MRAM</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Memory-overlap-in-MRAM/m-p/204675#M4767</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have been doing some debugging on our application from MRAM (MQX3.5.1, CW7.1.2, 52259evb).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a table in MRAM at 0x1005A000. When a run my full application code, somehow the data at 0x1005A000 gets overwritten with some data (AES_KEY_TABLE below). The data is dumped to printf and its wrong, the debugger also shows the table partially overwritten.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the memory map from my xMAP&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;# Memory map:&lt;BR /&gt;&amp;nbsp; v_addr&amp;nbsp;&amp;nbsp; p_addr&amp;nbsp;&amp;nbsp; size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name&lt;BR /&gt;&amp;nbsp; 10000000 10000000 00000400 .vectors&amp;nbsp;&amp;nbsp; vectorrom&lt;BR /&gt;&amp;nbsp; 10000400 10000400 00000018 .cfmprotect cfmprotrom&lt;BR /&gt;&amp;nbsp; 10000420 10000420 00000202 .Master_Boot_Page Master_Boot&lt;BR /&gt;&amp;nbsp; 10001000 10001000 00049728 .main_application MRAM&lt;BR /&gt;&amp;nbsp; 1005A000 1005A000 00003828 .AES_KEY_TABLE_Page AES_KEY_TABLE&lt;BR /&gt;&amp;nbsp; 20000000 1004A728 0000073C .main_application_data ram&lt;BR /&gt;&amp;nbsp; 2000073C 1004AE64 00000018 .romp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ram&lt;BR /&gt;&amp;nbsp; 20000754 20000754 00000B10 .main_application_bss ram&lt;BR /&gt;&amp;nbsp; 20001264 20001264 00000000 .kernel_data ram&lt;BR /&gt;&amp;nbsp; 2000FFF0 2000FFF0 00000000 .end_of_kernel_data end_of_kd&lt;BR /&gt;&amp;nbsp; 2000FA00 2000FA00 00000000 .boot_stack bstack&lt;BR /&gt;&amp;nbsp; 2000FBFF 2000FBFF 00000000 .end_of_boot_stack end_bstack&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My understanding to working out how much memory there is between MRAM base and AES table is:&lt;/P&gt;&lt;P&gt;MRAM BASE (0x10001000) +&lt;/P&gt;&lt;P&gt;main_application MRAM (0x49728) +&lt;/P&gt;&lt;P&gt;main_application_data ram (0x73C) +&lt;/P&gt;&lt;P&gt;.romp ram (0x18) 00049728&lt;/P&gt;&lt;P&gt;= 0x1004AE7C.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is well away from 0x1005A000, viewing memory via the debugger shows the memory overwritten up to around address 1005A710.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I cannot think of anything else... Unless MRAM is being used as SRAM during MRAM debug? or maybe romp (rom to ram) is causing the problem?How do I check?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PS, to test, I break on the first line in MAIN_TASK and use the 'view memory' function.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Jun 2010 09:19:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Memory-overlap-in-MRAM/m-p/204675#M4767</guid>
      <dc:creator>CarlFST60L</dc:creator>
      <dc:date>2010-06-02T09:19:12Z</dc:date>
    </item>
    <item>
      <title>Re: Memory overlap in MRAM</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Memory-overlap-in-MRAM/m-p/204676#M4768</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Carl,&lt;/P&gt;&lt;P&gt;Did your project evolve from one of the demo projects?&lt;/P&gt;&lt;P&gt;Do you have\use #define DEMOCFG_USE_POOLS 1 ?&lt;/P&gt;&lt;P&gt;If yes, set to 0 or comment out.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jun 2010 03:39:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Memory-overlap-in-MRAM/m-p/204676#M4768</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2010-06-03T03:39:34Z</dc:date>
    </item>
    <item>
      <title>Re: Memory overlap in MRAM</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Memory-overlap-in-MRAM/m-p/204677#M4769</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;it should work as you described. In M522259 BSP provided with MQX 3.5.1is MRAM Debug targets configured to be used for Code+Constant data (there are some exception - e.g.&amp;nbsp; ramdisk example, where MRAM is used as disk, formatted to FAT12 but this example does not containing MRAM target..).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;To be sure, if the memory is not overwritten during runtime set "write breakpoint to the memory which gets overwritten.&lt;/P&gt;&lt;P&gt;You will see the code which is responsible for overwriting&amp;nbsp; your area.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If the break point is never hit then there will be some problem with linker command file or "flasher" script..&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PetrL&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Jun 2010 03:41:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Memory-overlap-in-MRAM/m-p/204677#M4769</guid>
      <dc:creator>PetrL</dc:creator>
      <dc:date>2010-06-03T03:41:41Z</dc:date>
    </item>
  </channel>
</rss>

