<?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>Partial flash erase - timing requirements</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/117485/partial-flash-erase---timing-requirements</link><description>What are the implications of calling nrfx_nvmc_page_partial_erase_continue() faster than the period I specify in my call to nrfx_nvmc_page_partial_erase_init()? 
 I&amp;#39;m erasing a 228kB block of flash on an nrf52833 using partial flash erase. If I hammer</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 23 Dec 2024 13:25:17 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/117485/partial-flash-erase---timing-requirements" /><item><title>RE: Partial flash erase - timing requirements</title><link>https://devzone.nordicsemi.com/thread/516130?ContentTypeID=1</link><pubDate>Mon, 23 Dec 2024 13:25:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7297d732-1745-4ed4-aba5-02b624b2ddb0</guid><dc:creator>Emil Lenngren</dc:creator><description>&lt;p&gt;In what way do you ensure that each call to *_continue() occurs at the specified period? Do you measure the time from the beginning of a call to that function to the beginning of the next call to that function, or do you insert a delay between the calls? If you use a delay between the calls, you will definitiely see half speed compared to what&amp;#39;s estimated.&lt;/p&gt;
&lt;p&gt;In any case, the *_continue() function already busy-waits until the flash partial erase is complete. If you measure the time the *_continue() function takes to run, you will see that it should match your configured duration. So you can immediately call the *_continue() function again once it returns, or at some later point. If you set duration to 1 ms, you will need to perform 87 partial erases on nRF52833.&lt;/p&gt;
&lt;p&gt;The whole point of the partial erase feature is to not block the CPU for extended periods of time, which is important in for example BLE scheduling of connection events, where the connection interval is less than 87 ms. While an erase or partial erase is ongoing, the CPU will be stalled if it executes code from flash, even in interrupts. It&amp;#39;s easier to schedule 87 one-millisecond erase periods than a single 87 millisecond erase period.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Partial flash erase - timing requirements</title><link>https://devzone.nordicsemi.com/thread/516127?ContentTypeID=1</link><pubDate>Mon, 23 Dec 2024 12:48:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bb8339c8-a05b-4670-ae31-2fd5dfb06097</guid><dc:creator>Sigurd Hellesvik</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I suppose you got two minimal samples: One for erasing fast and one for waiting.&lt;br /&gt;If so, could you send these here so I can test this out on my side as well.&lt;/p&gt;
&lt;p&gt;Then I will try it -&amp;gt; look into our code and docs and see if I can find something -&amp;gt; Ask our NVMC devs if I cannot find sufficient information myself.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Sigurd Hellesvik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>