<?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>NRF Storage BUSY Error</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/61875/nrf-storage-busy-error</link><description>I am implementing the BLE buttonless DFU 
 SDK 14.2, 
 GCC compiler 
 softdevice 5.0.0 
 
 While writing the firmware data I am getting this error 00&amp;gt; INFO: ../../components/libraries/bootloader/dfu/nrf_dfu_flash.c +136 nrf_fstorage_write() failed with</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 03 Jun 2020 05:41:48 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/61875/nrf-storage-busy-error" /><item><title>RE: NRF Storage BUSY Error</title><link>https://devzone.nordicsemi.com/thread/252884?ContentTypeID=1</link><pubDate>Wed, 03 Jun 2020 05:41:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:26dced7a-0472-45fc-b23e-c1419dbcacd2</guid><dc:creator>Vaibhav_Bansal</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I am able to resolve all and success with SPI bootloader for NRF,&lt;/p&gt;
&lt;p&gt;Thanks for your support, you can close this ticket now.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF Storage BUSY Error</title><link>https://devzone.nordicsemi.com/thread/252712?ContentTypeID=1</link><pubDate>Tue, 02 Jun 2020 11:50:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8e847057-4102-4473-bdb1-35c974dfb019</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;I don&amp;#39;t know why you get hash errors. Did you compare the image that you fetched via SPI with the image that was originally written? Is it identical? If not, why not? Is it the same length? Is it shorter? Try to find out why it is different.&lt;/p&gt;
&lt;p&gt;In this solution, you have done a lot of custom work, so I am not sure why it is not working.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Did you generate the new image with nrfutil? Or are you only fetching the application&amp;#39;s .hex file?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF Storage BUSY Error</title><link>https://devzone.nordicsemi.com/thread/252642?ContentTypeID=1</link><pubDate>Tue, 02 Jun 2020 08:24:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:05de7931-d93e-44c0-9cb7-d6003d09995d</guid><dc:creator>Vaibhav_Bansal</dc:creator><description>&lt;p&gt;hey&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I am able to figure our the solution, but getting hash error&lt;br /&gt;Can you tell me the possible reason behind that and what will we the possible solution.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF Storage BUSY Error</title><link>https://devzone.nordicsemi.com/thread/252559?ContentTypeID=1</link><pubDate>Mon, 01 Jun 2020 07:42:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:517ee381-62d4-4fd3-bfde-d5af55a38bf2</guid><dc:creator>Vaibhav_Bansal</dc:creator><description>&lt;p&gt;I am calling flash write from timer timeout interrupt.&lt;/p&gt;
&lt;p&gt;Can you suggest me that why same logic is working over BLE,&lt;br /&gt;because BLE also call this function from interrupt.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;quot;ble_evt_handler&amp;quot; is called when we receive data from BLE and then according to the data this function is called.&amp;nbsp;&lt;br /&gt;I am doing the same, in which every 100ms I am reading the data from external flash and calling the same function that BLE calls for writing the data.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;But in BLE case softdevice for free but in other case it won&amp;#39;t.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF Storage BUSY Error</title><link>https://devzone.nordicsemi.com/thread/252235?ContentTypeID=1</link><pubDate>Thu, 28 May 2020 14:09:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4ded3ca1-eb81-4651-80a1-4357a00de4b2</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;You should look into the application logic. If you call the flash write calls from within an interrupt, perhaps the chip doesn&amp;#39;t release this interrupt, not allowing the fstorage module to write anything?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF Storage BUSY Error</title><link>https://devzone.nordicsemi.com/thread/252162?ContentTypeID=1</link><pubDate>Thu, 28 May 2020 11:57:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f20714cf-c420-4b42-befe-5798080e7fb4</guid><dc:creator>Vaibhav_Bansal</dc:creator><description>&lt;p&gt;In custom bootloader I had tried slowing down the process by 20 bytes per 100 ms, still getting this error,&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;I am using softdevice backend in bootloader.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;I just change the data input from BLE to SPI and everything remain same but still getting this issue.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF Storage BUSY Error</title><link>https://devzone.nordicsemi.com/thread/252136?ContentTypeID=1</link><pubDate>Thu, 28 May 2020 10:49:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9cc8cc4a-522e-486f-8444-97665d9c2363</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;if nrf_fstorage_write returns 4, it means&amp;nbsp;NRF_ERROR_NO_MEM. From the header file, nrf_fstorage.h:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/**@brief   Function for writing data to flash.
 *
 * Write @p len bytes from @p p_src to @p dest.
 *
 * When using @ref nrf_fstorage_sd, the data is written by several calls to @ref sd_flash_write if
 * the length of the data exceeds @ref NRF_FSTORAGE_SD_MAX_WRITE_SIZE bytes.
 * Only one event is sent upon completion.
 *
 * @note The data to be written to flash must be kept in memory until the operation has
 *       terminated and an event is received.
 *
 * @param[in]   p_fs        The fstorage instance.
 * @param[in]   dest        Address in flash memory where to write the data.
 * @param[in]   p_src       Data to be written.
 * @param[in]   len         Length of the data (in bytes).
 * @param[in]   p_param     User-defined parameter passed to the event handler (may be NULL).
 *
 * @retval  NRF_SUCCESS                 If the operation was accepted.
 * @retval  NRF_ERROR_NULL              If @p p_fs or @p p_src is NULL.
 * @retval  NRF_ERROR_INVALID_STATE     If the module is not initialized.
 * @retval  NRF_ERROR_INVALID_LENGTH    If @p len is zero or not a multiple of the program unit,
 *                                      or if it is otherwise invalid.
 * @retval  NRF_ERROR_INVALID_ADDR      If the address @p dest is outside the flash memory
 *                                      boundaries specified in @p p_fs, or if it is unaligned.
 * @retval  NRF_ERROR_NO_MEM            If no memory is available to accept the operation.
 *                                      When using the @ref nrf_fstorage_sd, this error
 *                                      indicates that the internal queue of operations is full.
 */
ret_code_t nrf_fstorage_write(nrf_fstorage_t const * p_fs,
                              uint32_t               dest,
                              void           const * p_src,
                              uint32_t               len,
                              void                 * p_param);&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Do you use the softdevice or NVMC backend in your bootloader?&lt;/p&gt;
&lt;p&gt;It may look like you still are writing too fast then. I don&amp;#39;t know how you implemented your custom bootloader.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF Storage BUSY Error</title><link>https://devzone.nordicsemi.com/thread/252066?ContentTypeID=1</link><pubDate>Thu, 28 May 2020 04:30:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e118127b-e31c-4f98-a917-c93b28a1fdc5</guid><dc:creator>Vaibhav_Bansal</dc:creator><description>&lt;p&gt;Hey,&lt;/p&gt;
&lt;p&gt;I am successful in working with BLE DFU, but now I am trying to implement the SPI bootloader where I am reading the NRF firmware file from the external memory.&lt;/p&gt;
&lt;p&gt;With BLE I had observed that Data transfer speed to quiet fast that currently I am using.&lt;br /&gt;And also I tried to slow down data speed to 20 bytes per 20 ms, but still getting the same results.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF Storage BUSY Error</title><link>https://devzone.nordicsemi.com/thread/252006?ContentTypeID=1</link><pubDate>Wed, 27 May 2020 14:17:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4d6fd265-7be0-4a64-aa76-522e081a2e3c</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Is dfu_req_handling.c a custom file? If so, I can&amp;#39;t say why it fails.&lt;/p&gt;
&lt;p&gt;Have you seen our implementation on the buttonless_dfu example in combination with our bootloader from the SDK?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;By the look of things, if nrf_fstorage_write() returns NRF_ERROR_BUSY, it probably means that you are writing too fast to the flash. What decides how fast you call this?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;BR,&lt;br /&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>