<?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 K60N512 Memory in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K60N512-Memory/m-p/269747#M9050</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;I read on the datasheet that this particular MCU that I am using does not have an NVM part. I plan to use the upper portion of flash as data storage. Without NVM, is it still possible to configure this portion as data storage? I tried doing it nevertheless. The first time I write it is successful. However the second time, the debugger hangs. I traced the problem that it returns at function FLASH1_Main().&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Specifically at line:&lt;/P&gt;&lt;P&gt;if(((DataToPrg &amp;amp; DataToPrgMask) &amp;amp; (~CurrentFlashPrgUnitData)) &amp;gt; 0U) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;CurrentErrorFlags |= LDD_FLASH_MULTIPLE_WRITE_ERROR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As you can see the error is multiple error. Is there any workaround to this problem given that I will not change the MCU with NVM? If yes, How should I do it?&lt;/P&gt;&lt;P&gt;By the way linker file I tried configuring the portion where I want to write as RWX but to no avail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using Codewarrior 10.2 and MQX 3.8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank You.&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 22 Feb 2013 14:47:11 GMT</pubDate>
    <dc:creator>vines</dc:creator>
    <dc:date>2013-02-22T14:47:11Z</dc:date>
    <item>
      <title>K60N512 Memory</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K60N512-Memory/m-p/269747#M9050</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;I read on the datasheet that this particular MCU that I am using does not have an NVM part. I plan to use the upper portion of flash as data storage. Without NVM, is it still possible to configure this portion as data storage? I tried doing it nevertheless. The first time I write it is successful. However the second time, the debugger hangs. I traced the problem that it returns at function FLASH1_Main().&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Specifically at line:&lt;/P&gt;&lt;P&gt;if(((DataToPrg &amp;amp; DataToPrgMask) &amp;amp; (~CurrentFlashPrgUnitData)) &amp;gt; 0U) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceDataPrv-&amp;gt;CurrentErrorFlags |= LDD_FLASH_MULTIPLE_WRITE_ERROR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As you can see the error is multiple error. Is there any workaround to this problem given that I will not change the MCU with NVM? If yes, How should I do it?&lt;/P&gt;&lt;P&gt;By the way linker file I tried configuring the portion where I want to write as RWX but to no avail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using Codewarrior 10.2 and MQX 3.8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank You.&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Feb 2013 14:47:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K60N512-Memory/m-p/269747#M9050</guid>
      <dc:creator>vines</dc:creator>
      <dc:date>2013-02-22T14:47:11Z</dc:date>
    </item>
    <item>
      <title>Re: K60N512 Memory</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K60N512-Memory/m-p/269748#M9051</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;By the way I copied the settings on this link &lt;A href="https://community.nxp.com/thread/301573"&gt;Erasing Flash sectors in KL25 on the Freedom Board.&lt;/A&gt;&lt;/P&gt;&lt;P&gt;I allocated space for flash component as well.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'll paste my functions below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;bool readInternalFlash(u32 address, u8 * data, u16 len)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FLASH1_Read(flash_Ptr, address, data, len);&amp;nbsp;&amp;nbsp;&amp;nbsp; // Start reading from the flash memory &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FLASH1_Main(flash_Ptr);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpStatus = FLASH1_GetOperationStatus(flash_Ptr);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } while (!((OpStatus == LDD_FLASH_IDLE) | (OpStatus == LDD_FLASH_FAILED))); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (OpStatus == LDD_FLASH_FAILED) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;bool writeInternalFlash(u32 address, u8 * data, u16 len)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FLASH1_Write(flash_Ptr, data, address, len);&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (!DataWrittenFlg) {&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FLASH1_Main(flash_Ptr);&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;&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;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DataWrittenFlg = FALSE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (FLASH1_GetOperationStatus(flash_Ptr) == LDD_FLASH_FAILED) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; readInternalFlash(address, data, len);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;bool eraseInternalFlash(u32 address, u16 len)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (FLASH1_Erase(flash_Ptr, address, len) == ERR_OK)&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Feb 2013 14:58:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K60N512-Memory/m-p/269748#M9051</guid>
      <dc:creator>vines</dc:creator>
      <dc:date>2013-02-22T14:58:03Z</dc:date>
    </item>
    <item>
      <title>Re: K60N512 Memory</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K60N512-Memory/m-p/269749#M9052</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I had exactly the same problem, this was happening because the sector that you were trying to write to was not erased.&amp;nbsp; The PE generated code does not erase the sector for you prior to writing to it, you have to erase it yourself.&amp;nbsp; I hope this helps someone else. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 08 Sep 2014 18:04:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K60N512-Memory/m-p/269749#M9052</guid>
      <dc:creator>danieldelatorre</dc:creator>
      <dc:date>2014-09-08T18:04:42Z</dc:date>
    </item>
    <item>
      <title>Re: K60N512 Memory</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K60N512-Memory/m-p/269750#M9053</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;please explain in detail~&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;The first time I write it is successful too, However the second time, debugger stop at the UnhandledInterrupt in Ventors,c&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;can i get a advice ??&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Oct 2015 06:16:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K60N512-Memory/m-p/269750#M9053</guid>
      <dc:creator>josol</dc:creator>
      <dc:date>2015-10-30T06:16:34Z</dc:date>
    </item>
    <item>
      <title>Re: K60N512 Memory</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/K60N512-Memory/m-p/269751#M9054</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks to Jorge Gonzalez's help&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I solve the problem. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/thread/378940"&gt;How can i store some data into flexNVM or flash memory ?&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2015 01:22:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/K60N512-Memory/m-p/269751#M9054</guid>
      <dc:creator>josol</dc:creator>
      <dc:date>2015-11-02T01:22:45Z</dc:date>
    </item>
  </channel>
</rss>

