<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Dynamic Flash Write</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/112842/dynamic-flash-write</link><description>Hi currently i am using nrf52840 sdk ver 17.1.0 s140 i am using the sdk flash storage example in .\.\_nRF5_SDK_17.1.0_ddde560\examples\peripheral\flash_fstorage where i am changing the data and flashing the code again but still the data dosent change</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 08 Aug 2024 05:38:47 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/112842/dynamic-flash-write" /><item><title>RE: Dynamic Flash Write</title><link>https://devzone.nordicsemi.com/thread/497407?ContentTypeID=1</link><pubDate>Thu, 08 Aug 2024 05:38:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c8e924c3-a8e9-4a27-b4fa-02e2fa18e33b</guid><dc:creator>AP1</dc:creator><description>&lt;p&gt;Hi we are using GPREGRET registers instead of flash write it is working fine&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Dynamic Flash Write</title><link>https://devzone.nordicsemi.com/thread/493082?ContentTypeID=1</link><pubDate>Wed, 10 Jul 2024 08:44:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:57dad48b-ac72-4bd3-b486-c524fc639ed8</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Please print the event type and error code from your callback so we can see which operation failed and what the error code is.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Dynamic Flash Write</title><link>https://devzone.nordicsemi.com/thread/493028?ContentTypeID=1</link><pubDate>Tue, 09 Jul 2024 17:05:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:574df84c-fef1-4ae3-bea6-7dee1155f3f5</guid><dc:creator>AP1</dc:creator><description>&lt;p&gt;Hi i have the following code in nrf52840 sdk 17.1.0 and i have added flash write in the central uart code but i am facing error and unable to write in flash&lt;/p&gt;
&lt;p&gt;ret = 0&lt;br /&gt;ret1 = 0&lt;br /&gt;ret2 = 0&lt;br /&gt;data = 0x1&lt;br /&gt;&amp;lt;info&amp;gt; app: --&amp;gt; Event received: ERROR while executing an fstorage operation.&lt;br /&gt;&amp;lt;info&amp;gt; app: --&amp;gt; Event received: ERROR while executing an fstorage operation.&lt;/p&gt;
&lt;p&gt;static void fstorage_evt_handler(nrf_fstorage_evt_t * p_evt)&lt;br /&gt;{&lt;br /&gt; if (p_evt-&amp;gt;result != NRF_SUCCESS)&lt;br /&gt; {&lt;br /&gt; NRF_LOG_INFO(&amp;quot;--&amp;gt; Event received: ERROR while executing an fstorage operation.&amp;quot;);&lt;br /&gt; return;&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;switch (p_evt-&amp;gt;id)&lt;br /&gt; {&lt;br /&gt; case NRF_FSTORAGE_EVT_WRITE_RESULT:&lt;br /&gt; {&lt;br /&gt; NRF_LOG_INFO(&amp;quot;--&amp;gt; Event received: wrote %d bytes at address 0x%x.&amp;quot;,&lt;br /&gt; p_evt-&amp;gt;len, p_evt-&amp;gt;addr);&lt;br /&gt; } break;&lt;/p&gt;
&lt;p&gt;case NRF_FSTORAGE_EVT_ERASE_RESULT:&lt;br /&gt; {&lt;br /&gt; NRF_LOG_INFO(&amp;quot;--&amp;gt; Event received: erased %d page from address 0x%x.&amp;quot;,&lt;br /&gt; p_evt-&amp;gt;len, p_evt-&amp;gt;addr);&lt;br /&gt; } break;&lt;/p&gt;
&lt;p&gt;default:&lt;br /&gt; break;&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;NRF_FSTORAGE_DEF(nrf_fstorage_t fstorage) =&lt;br /&gt;{&lt;br /&gt; /* Set a handler for fstorage events. */&lt;br /&gt; .evt_handler = fstorage_evt_handler,&lt;br /&gt; .start_addr = 0x3E000,&lt;br /&gt; .end_addr = 0x3E000+0x1000,&lt;br /&gt;};&lt;/p&gt;
&lt;p&gt;uint8_t flash_wrt()&lt;br /&gt;{&lt;br /&gt; ret_code_t ret = nrf_fstorage_erase(&amp;amp;fstorage, 0x3e000, 1, NULL);&lt;/p&gt;
&lt;p&gt;printf(&amp;quot;ret = %d\n&amp;quot;,ret);&lt;/p&gt;
&lt;p&gt;wait_for_flash_ready(&amp;amp;fstorage);&lt;/p&gt;
&lt;p&gt;ret_code_t ret1 = nrf_fstorage_write(&amp;amp;fstorage, 0x3e000, &amp;amp;data_wrt, sizeof(data_wrt), NULL);&lt;br /&gt; printf(&amp;quot;ret1 = %d\n&amp;quot;,ret1);&lt;/p&gt;
&lt;p&gt;wait_for_flash_ready(&amp;amp;fstorage);&lt;/p&gt;
&lt;p&gt;ret_code_t ret2 = nrf_fstorage_read(&amp;amp;fstorage, 0x3e000, &amp;amp;data_rd,sizeof(data_rd));&lt;br /&gt; printf(&amp;quot;ret2 = %d\n&amp;quot;,ret2);&lt;/p&gt;
&lt;p&gt;wait_for_flash_ready(&amp;amp;fstorage);&lt;/p&gt;
&lt;p&gt;printf(&amp;quot;data = 0x%0X\n&amp;quot;,data_rd);&lt;/p&gt;
&lt;p&gt;data_rd =0;&lt;/p&gt;
&lt;p&gt;return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Dynamic Flash Write</title><link>https://devzone.nordicsemi.com/thread/492788?ContentTypeID=1</link><pubDate>Mon, 08 Jul 2024 15:43:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1e0cd266-d6b8-41a9-8b49-3c1d18d82097</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;A flash write can only flip bits from &amp;#39;1&amp;#39; to &amp;#39;0&amp;#39;. When erasing a flash page, all zeroes are reset to &amp;#39;1&amp;#39;. Therefore, it is necessary to erase the flash before updating existing data. To minimize the number of page erases and simplify data updates, I recommend using &lt;a href="https://docs.nordicsemi.com/bundle/sdk_nrf5_v17.1.0/page/lib_fds.html"&gt;Flash Data Storage (FDS)&lt;/a&gt;&amp;nbsp;on top of fstorage.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>