<?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 How can I write data to variable located in flash memory? in i.MX RT Crossover MCUs</title>
    <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/How-can-I-write-data-to-variable-located-in-flash-memory/m-p/812800#M1165</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I use RT1050 EVK with hyperflash&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now I'm trying to write data to variable located in flash memory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But I&amp;nbsp;can't do it&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I defined rw flash section as below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MEMORY&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; /* Define each memory region */&lt;BR /&gt;&amp;nbsp; EXT_FLASH (rx) : ORIGIN = 0x60000000, LENGTH = 0x100000 /* 1M bytes (alias Flash) */&lt;BR /&gt;&amp;nbsp;&lt;STRONG&gt; EXT_FLASH_NVDATA (rwx) : ORIGIN = 0x60100000, LENGTH = 0x80 /* 128 bytes (alias Flash) */&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp; EXT_FLASH_FONT (rx) : ORIGIN = 0x60100080, LENGTH = 0x80000 /* 512K bytes (alias Flash) */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; __base_EXT_FLASH_NVDATA = 0x60100000&amp;nbsp; ;&lt;BR /&gt;&amp;nbsp; __top_EXT_FLASH_NVDATA = 0x60100000 + 0x80 ; /* 128 bytes */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;.nv_user_data : ALIGN(4)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;KEEP(*(.nv_userdata))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;. = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; EXT_FLASH_NVDATA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And I made a code as below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint32_t&amp;nbsp;test_data __attribute__ ((section (".nv_userdata"))) __attribute__ ((aligned(4))) = 20;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void setTestData(unsigned char id)&lt;BR /&gt;{&lt;BR /&gt; test_data = 30;&lt;BR /&gt;}&amp;nbsp;&amp;nbsp; &amp;lt;- break point&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After I set break point and run debug with MCUXpresso, I saw that value of memory is changed as below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;0x60100000 : 0x60100000 &amp;lt;Hexadecimal&amp;gt;&lt;BR /&gt;&amp;nbsp; Address&amp;nbsp;&amp;nbsp; 0 - 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 - 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8 - B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C - F&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;BR /&gt;&amp;nbsp; 60100000&amp;nbsp; 00464680&amp;nbsp; 00050200&amp;nbsp; 00000000&amp;nbsp; &lt;STRONG&gt;00000014&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;-- before&lt;BR /&gt;&amp;nbsp; 60100010&amp;nbsp; FFFFFFFF&amp;nbsp; FFFFFFFF&amp;nbsp; FFFFFFFF&amp;nbsp; FFFFFFFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;0x60100000 : 0x60100000 &amp;lt;Hexadecimal&amp;gt;&lt;BR /&gt;&amp;nbsp; Address&amp;nbsp;&amp;nbsp; 0 - 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 - 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8 - B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C - F&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;BR /&gt;&amp;nbsp; 60100000&amp;nbsp; 00464680&amp;nbsp; 00050200&amp;nbsp; 00000000&amp;nbsp; &lt;STRONG&gt;0000001E&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;-- after&lt;BR /&gt;&amp;nbsp; 60100010&amp;nbsp; FFFFFFFF&amp;nbsp; FFFFFFFF&amp;nbsp; FFFFFFFF&amp;nbsp; FFFFFFFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, After board reset, value of it's memory&amp;nbsp;return to 20.&lt;/P&gt;&lt;P&gt;It seems to behave abnormally to acess.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And if test_data variable declares uint8_t or uint16_t, value of test_data&amp;nbsp;is not changed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;how can I write data to variable located in flash memory?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 16 Jul 2018 06:57:40 GMT</pubDate>
    <dc:creator>yongjin2712_cho</dc:creator>
    <dc:date>2018-07-16T06:57:40Z</dc:date>
    <item>
      <title>How can I write data to variable located in flash memory?</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/How-can-I-write-data-to-variable-located-in-flash-memory/m-p/812800#M1165</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I use RT1050 EVK with hyperflash&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now I'm trying to write data to variable located in flash memory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But I&amp;nbsp;can't do it&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I defined rw flash section as below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MEMORY&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; /* Define each memory region */&lt;BR /&gt;&amp;nbsp; EXT_FLASH (rx) : ORIGIN = 0x60000000, LENGTH = 0x100000 /* 1M bytes (alias Flash) */&lt;BR /&gt;&amp;nbsp;&lt;STRONG&gt; EXT_FLASH_NVDATA (rwx) : ORIGIN = 0x60100000, LENGTH = 0x80 /* 128 bytes (alias Flash) */&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp; EXT_FLASH_FONT (rx) : ORIGIN = 0x60100080, LENGTH = 0x80000 /* 512K bytes (alias Flash) */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; __base_EXT_FLASH_NVDATA = 0x60100000&amp;nbsp; ;&lt;BR /&gt;&amp;nbsp; __top_EXT_FLASH_NVDATA = 0x60100000 + 0x80 ; /* 128 bytes */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;.nv_user_data : ALIGN(4)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;KEEP(*(.nv_userdata))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;. = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; EXT_FLASH_NVDATA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And I made a code as below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint32_t&amp;nbsp;test_data __attribute__ ((section (".nv_userdata"))) __attribute__ ((aligned(4))) = 20;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void setTestData(unsigned char id)&lt;BR /&gt;{&lt;BR /&gt; test_data = 30;&lt;BR /&gt;}&amp;nbsp;&amp;nbsp; &amp;lt;- break point&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After I set break point and run debug with MCUXpresso, I saw that value of memory is changed as below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;0x60100000 : 0x60100000 &amp;lt;Hexadecimal&amp;gt;&lt;BR /&gt;&amp;nbsp; Address&amp;nbsp;&amp;nbsp; 0 - 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 - 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8 - B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C - F&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;BR /&gt;&amp;nbsp; 60100000&amp;nbsp; 00464680&amp;nbsp; 00050200&amp;nbsp; 00000000&amp;nbsp; &lt;STRONG&gt;00000014&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;-- before&lt;BR /&gt;&amp;nbsp; 60100010&amp;nbsp; FFFFFFFF&amp;nbsp; FFFFFFFF&amp;nbsp; FFFFFFFF&amp;nbsp; FFFFFFFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;0x60100000 : 0x60100000 &amp;lt;Hexadecimal&amp;gt;&lt;BR /&gt;&amp;nbsp; Address&amp;nbsp;&amp;nbsp; 0 - 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 - 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8 - B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C - F&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;BR /&gt;&amp;nbsp; 60100000&amp;nbsp; 00464680&amp;nbsp; 00050200&amp;nbsp; 00000000&amp;nbsp; &lt;STRONG&gt;0000001E&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;-- after&lt;BR /&gt;&amp;nbsp; 60100010&amp;nbsp; FFFFFFFF&amp;nbsp; FFFFFFFF&amp;nbsp; FFFFFFFF&amp;nbsp; FFFFFFFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, After board reset, value of it's memory&amp;nbsp;return to 20.&lt;/P&gt;&lt;P&gt;It seems to behave abnormally to acess.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And if test_data variable declares uint8_t or uint16_t, value of test_data&amp;nbsp;is not changed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;how can I write data to variable located in flash memory?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jul 2018 06:57:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/How-can-I-write-data-to-variable-located-in-flash-memory/m-p/812800#M1165</guid>
      <dc:creator>yongjin2712_cho</dc:creator>
      <dc:date>2018-07-16T06:57:40Z</dc:date>
    </item>
    <item>
      <title>Re: How can I write data to variable located in flash memory?</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/How-can-I-write-data-to-variable-located-in-flash-memory/m-p/812801#M1166</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; I think, the problem is, that it is not possible to run code and write to the same flash&lt;/P&gt;&lt;P&gt;device. Flash is not usual (SRAM / DRAM) memory in this sense.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Yuri&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Jul 2018 03:03:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/How-can-I-write-data-to-variable-located-in-flash-memory/m-p/812801#M1166</guid>
      <dc:creator>Yuri</dc:creator>
      <dc:date>2018-07-20T03:03:06Z</dc:date>
    </item>
  </channel>
</rss>

