<?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 flash storage event handler issue with Bluetooth advertising.</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/60806/nrf-flash-storage-event-handler-issue-with-bluetooth-advertising</link><description>Hi Team, 
 We are facing issue with Flash storage Handlers with ble handlers. When we add the fstorage to my application ble adversing is stopped suddenly. 
 We are having separate Event handlers for both. We have some concerns related to fstorage, 
</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 13 May 2020 10:25:28 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/60806/nrf-flash-storage-event-handler-issue-with-bluetooth-advertising" /><item><title>RE: NRF flash storage event handler issue with Bluetooth advertising.</title><link>https://devzone.nordicsemi.com/thread/249657?ContentTypeID=1</link><pubDate>Wed, 13 May 2020 10:25:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1773ab5f-f8af-41f5-a968-ea351fbfb4a7</guid><dc:creator>Srinivas V</dc:creator><description>&lt;p&gt;Hi Haakansh,&lt;/p&gt;
&lt;p&gt;Thanks for your reply.&lt;/p&gt;
&lt;p&gt;Again and again we are asking same question, you are giving same reply, means we are not connecting with your answer and not getting clarity.&lt;/p&gt;
&lt;p&gt;Can you give me any sample code or code snippet which will explain more clearly about how to use the SD Time slot API&amp;#39;s for flash. we are using the soft device flash API only.&lt;/p&gt;
&lt;p&gt;We are asking how to use the Time slot API&amp;#39;s and these are different with current API&amp;#39;s ,what we are using now.we have shared code as well , you not looked at the code at all. The way you are giving answers was not getting clarity.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Srinivas.V&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF flash storage event handler issue with Bluetooth advertising.</title><link>https://devzone.nordicsemi.com/thread/249506?ContentTypeID=1</link><pubDate>Tue, 12 May 2020 13:42:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:74fe81d1-ea00-445f-803f-3b36d4732500</guid><dc:creator>haakonsh</dc:creator><description>[quote user="Srinivas V"]Is there any other design technique to implement the Flash operations without disturbing&amp;nbsp;the BLE functionalities.[/quote]
&lt;p&gt;&amp;nbsp;Yes, use the SoftDevice Flash API in a Timeslot as explained previously.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF flash storage event handler issue with Bluetooth advertising.</title><link>https://devzone.nordicsemi.com/thread/247994?ContentTypeID=1</link><pubDate>Mon, 04 May 2020 16:56:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7f0c44b1-aa28-45f1-8451-7be5a7f9caf0</guid><dc:creator>Srinivas V</dc:creator><description>&lt;p&gt;&lt;span&gt;Hi Haakonsh,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks for your reply.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3. what was the API or Macro to configure the&amp;nbsp;storage API&amp;nbsp;time slot length in&amp;nbsp;&amp;micro;s and flash data size is less than 256 bytes only.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Here with i am sharing my flash design in my application,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;/Flash Data is updated ,writing to Flash sector based on runtime flag&lt;br /&gt; if((true == m_fs_Data_Update) &amp;amp;&amp;amp; (true == m_ble_idle_flage))&lt;br /&gt; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; m_fs_Data_Update = false;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;m_ble_idle_flage = false;&lt;br /&gt; &lt;br /&gt; CRITICAL_REGION_ENTER();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Update_flash_Data();&lt;br /&gt; CRITICAL_REGION_EXIT();&lt;br /&gt; }&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;static void on_adv_evt(ble_adv_evt_t ble_adv_evt)&lt;br /&gt;{&lt;br /&gt; ret_code_t err_code;&lt;/p&gt;
&lt;p&gt;switch (ble_adv_evt)&lt;br /&gt; {&lt;br /&gt; case BLE_ADV_EVT_FAST:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NRF_LOG_INFO(&amp;quot;Fast advertising.&amp;quot;);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; err_code = bsp_indication_set(BSP_INDICATE_ADVERTISING);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;APP_ERROR_CHECK(err_code);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;&lt;/p&gt;
&lt;p&gt;case BLE_ADV_EVT_IDLE:&lt;br /&gt; &lt;strong&gt;&amp;nbsp; &amp;nbsp; m_ble_idle_flage = true;&amp;nbsp; &amp;nbsp; //when ever ble is idle we are writing the data to flash.&lt;/strong&gt;&lt;br /&gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sleep_mode_enter();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;&lt;br /&gt;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;void Update_flash_Data(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ret_code_t rc;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uint32_t len = round_up_u32(sizeof(m_sffl_data));&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rc = nrf_fstorage_erase(&amp;amp;fstorage, fstorage.start_addr, 1, NULL); &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;APP_ERROR_CHECK(rc);&lt;br /&gt; &lt;br /&gt; //wait_for_flash_ready(&amp;amp;fstorage);&lt;br /&gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rc = nrf_fstorage_write(&amp;amp;fstorage,fstorage.start_addr, &amp;amp;m_sffl_data, len, NULL);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; APP_ERROR_CHECK(rc); &lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;void fs_Init(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ret_code_t rc;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nrf_fstorage_api_t * p_fs_api;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#ifdef SOFTDEVICE_PRESENT&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; p_fs_api = &amp;amp;nrf_fstorage_sd;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#else&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;p_fs_api = &amp;amp;nrf_fstorage_nvmc;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #endif&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rc = nrf_fstorage_init(&amp;amp;fstorage, p_fs_api, NULL);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;APP_ERROR_CHECK(rc);&lt;br /&gt; &lt;br /&gt; /* It is possible to set the start and end addresses of an fstorage instance at runtime.&lt;br /&gt; * They can be set multiple times, should it be needed. The helper function below can&lt;br /&gt; * be used to determine the last address on the last page of flash memory available to&lt;br /&gt; * store data. */&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(void) nrf5_flash_end_addr_get();&lt;br /&gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;wait_for_flash_ready(&amp;amp;fstorage);&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Is there any other design technique to implement the Flash operations without disturbing&amp;nbsp;the BLE functionalities.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Regards.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Srinivas.V&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF flash storage event handler issue with Bluetooth advertising.</title><link>https://devzone.nordicsemi.com/thread/247929?ContentTypeID=1</link><pubDate>Mon, 04 May 2020 14:22:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0384b56b-6071-437d-bef5-a780077ecd99</guid><dc:creator>haakonsh</dc:creator><description>&lt;ol&gt;
&lt;li&gt;The scheduling of flash access is handled by the SoftDevice.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;It has a fixed low priority.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;See&amp;nbsp;&lt;/span&gt;&lt;a title="sd_radio_request" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s140.api.v7.0.1/group___n_r_f___s_o_c___f_u_n_c_t_i_o_n_s.html?cp=4_6_3_1_2_7_2_41#ga3fbd3ade121c15745cc19b900ce8154b"&gt;sd_radio_request&lt;/a&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;a title="sd_radio_session_open" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s140.api.v7.0.1/group___n_r_f___s_o_c___f_u_n_c_t_i_o_n_s.html?cp=4_6_3_1_2_7_2_43#ga55a52eb4d0491cb7105de6a13eb2b11b"&gt;sd_radio_session_open&lt;/a&gt;&lt;span&gt;, and&amp;nbsp;&lt;/span&gt;&lt;a title="sd_radio_session_close" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s140.api.v7.0.1/group___n_r_f___s_o_c___f_u_n_c_t_i_o_n_s.html?cp=4_6_3_1_2_7_2_42#gabcc6027a70aecaaa27e4deec6231f999"&gt;sd_radio_session_close&lt;/a&gt;&lt;span&gt;. You can use the storage API when in a Timeslot. You have to specify the length of the timeslot in µs, and since the flash operations are deterministic you can divide your flash operations into parts that fit into a given Timeslot.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Yes, see (3).&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF flash storage event handler issue with Bluetooth advertising.</title><link>https://devzone.nordicsemi.com/thread/247613?ContentTypeID=1</link><pubDate>Thu, 30 Apr 2020 14:44:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6cd3fa0e-2f70-4353-82a2-31a9f37bfb06</guid><dc:creator>Srinivas V</dc:creator><description>&lt;p&gt;Hi Haakonsh,&lt;/p&gt;
&lt;p&gt;Thanks for your reply.We have some more questions on FLASH API timing and other things.&lt;/p&gt;
&lt;p&gt;1. How to enable&amp;nbsp;&lt;span&gt;flash timing-event scheduling in any available time left between other timing-events.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2. How to configure the code to run the Flash API in a low priority,in which file we need to do this activity.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3. How to configure and use the Time slot&amp;nbsp;Flash API&amp;#39;s apart from Normal Flash API ,like &amp;quot;sd_flash_write&amp;quot; and &amp;quot;sd_flash_erase&amp;quot;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;4. Is there any way to know the Blue tooth is in&amp;nbsp; ideal state, in that slot we can execute this Flash API&amp;#39;s.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Flash is running at Fourth priority and we can&amp;#39;t change this , my intention is how to implement or use&amp;nbsp; the above mentioned points in our Application,&amp;nbsp; is there any specific example for Flash timing api&amp;#39;s and other things.I haven&amp;#39;t found any specific api&amp;#39;s for flash apart from i mentioned above.&lt;/span&gt;&lt;/p&gt;
&lt;table class="table" id="priorities_and_events__table_qgg_zc2_cs" border="1" cellpadding="4" cellspacing="0" frame="border" rules="all" summary=""&gt;
&lt;tbody class="tbody"&gt;
&lt;tr class="row"&gt;
&lt;td class="entry cellrowborder" colspan="1" headers="d12604e68" rowspan="1"&gt;Fourth priority&lt;/td&gt;
&lt;td class="entry cellrowborder" colspan="1" headers="d12604e71" rowspan="1"&gt;
&lt;ul class="ul" id="priorities_and_events__ul_qhv_b22_cs"&gt;
&lt;li class="li"&gt;Flash access&lt;/li&gt;
&lt;li class="li"&gt;Radio Timeslot with normal priority&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Srinivas.V&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF flash storage event handler issue with Bluetooth advertising.</title><link>https://devzone.nordicsemi.com/thread/247468?ContentTypeID=1</link><pubDate>Thu, 30 Apr 2020 07:59:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fb7eec7c-12db-490a-b6bf-1b631ceaff02</guid><dc:creator>haakonsh</dc:creator><description>&lt;ol&gt;
&lt;li&gt;See&amp;nbsp;&lt;a title="sd_radio_request" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s140.api.v7.0.1/group___n_r_f___s_o_c___f_u_n_c_t_i_o_n_s.html?cp=4_6_3_1_2_7_2_41#ga3fbd3ade121c15745cc19b900ce8154b"&gt;sd_radio_request&lt;/a&gt;,&amp;nbsp;&lt;a title="sd_radio_session_open" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s140.api.v7.0.1/group___n_r_f___s_o_c___f_u_n_c_t_i_o_n_s.html?cp=4_6_3_1_2_7_2_43#ga55a52eb4d0491cb7105de6a13eb2b11b"&gt;sd_radio_session_open&lt;/a&gt;, and&amp;nbsp;&lt;a title="sd_radio_session_close" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s140.api.v7.0.1/group___n_r_f___s_o_c___f_u_n_c_t_i_o_n_s.html?cp=4_6_3_1_2_7_2_42#gabcc6027a70aecaaa27e4deec6231f999"&gt;sd_radio_session_close&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;The SoftDevice&amp;#39;s flash operation is run at IRQ priority 5, they are scheduled, but they can get interrupted. See&amp;nbsp;&lt;a title="Flash memory API" href="https://infocenter.nordicsemi.com/topic/sds_s140/SDS/s1xx/flash_mem_api/flash_mem_api.html?cp=4_6_3_0_7"&gt;Flash memory API&lt;/a&gt;&amp;nbsp;for details.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Use Timeslot API,&amp;nbsp;disable interrupts, execute atomic operation, re-enable interrupts.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF flash storage event handler issue with Bluetooth advertising.</title><link>https://devzone.nordicsemi.com/thread/247327?ContentTypeID=1</link><pubDate>Wed, 29 Apr 2020 11:57:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:78f0b0d0-ae23-4fe1-ac00-e81f70b0e929</guid><dc:creator>Srinivas V</dc:creator><description>&lt;p&gt;Hi Haakonsh,&lt;/p&gt;
&lt;p&gt;Thanks for your reply.I have seen that exmaple, in that based on bsp button press there are deciding the running mode, but at a time only one module is running.&lt;/p&gt;
&lt;p&gt;My requirement is different ,we need the both the modules but only thing once in a while we update the flash data in that time it should not preempted by others.&lt;/p&gt;
&lt;p&gt;1. How to enalbe the SD scheduler which manages radio timeslots and priorities and sets up timers to grant time slots to peripherals.&lt;/p&gt;
&lt;p&gt;2. How to assign priorities to&amp;nbsp;Flash API&amp;#39;s.&lt;/p&gt;
&lt;p&gt;3. How to make atomic nature flash api&amp;#39;s when they are running, means nobody will preempt at that time(10ms),once it is done we will come out from this atomic operation and execute as normal.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Srinivas.V&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF flash storage event handler issue with Bluetooth advertising.</title><link>https://devzone.nordicsemi.com/thread/247300?ContentTypeID=1</link><pubDate>Wed, 29 Apr 2020 11:03:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cb0cd689-cda8-4daa-9a75-30bc091673d5</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;See examples/multiprotocol&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF flash storage event handler issue with Bluetooth advertising.</title><link>https://devzone.nordicsemi.com/thread/247297?ContentTypeID=1</link><pubDate>Wed, 29 Apr 2020 10:53:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d9f59710-0664-412e-b317-e6853f59a861</guid><dc:creator>Srinivas V</dc:creator><description>&lt;p&gt;Hi Haakonsh,&lt;/p&gt;
&lt;p&gt;Thanks for your reply.We are using the SD Flash Api&amp;#39;s only inside the wrapper functions we are calling the same SD Api&amp;#39;s only.&lt;/p&gt;
&lt;p&gt;Coming to Concurrent multi protocol implementation is there any example code for reference, we will use the same concept for our design.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Srinivas.V&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF flash storage event handler issue with Bluetooth advertising.</title><link>https://devzone.nordicsemi.com/thread/247219?ContentTypeID=1</link><pubDate>Wed, 29 Apr 2020 07:15:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b37a4b94-865b-4bf6-b6b7-3caeb49472a7</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;See&amp;nbsp;&lt;a title="Flash memory API" href="https://infocenter.nordicsemi.com/topic/sds_s140/SDS/s1xx/flash_mem_api/flash_mem_api.html?cp=4_6_3_0_7"&gt;Flash memory API&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a title="Flash API timing" href="https://infocenter.nordicsemi.com/topic/sds_s140/SDS/s1xx/multilink_scheduling/flash_api_timing.html?cp=4_6_3_0_14_7"&gt;Flash API timing&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You need to either use the SoftDevice&amp;#39;s flash API (&lt;a title="sd_flash_page_erase" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s140.api.v7.0.1/group___n_r_f___s_o_c___f_u_n_c_t_i_o_n_s.html?cp=4_6_3_1_2_7_2_7#ga9c93dd94a138ad8b5ed3693ea38ffb3e"&gt;sd_flash_page_erase&lt;/a&gt;&amp;nbsp;and &lt;a title="sd_flash_write" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s140.api.v7.0.1/group___n_r_f___s_o_c___f_u_n_c_t_i_o_n_s.html?cp=4_6_3_1_2_7_2_8#gae5361e65cbb5e7f6e258947a394c9b55"&gt;sd_flash_write&lt;/a&gt;), or write/erase with Fstorage in a Timeslot, see&amp;nbsp;&lt;a title="Concurrent multiprotocol implementation using the Radio Timeslot API" href="https://infocenter.nordicsemi.com/topic/sds_s140/SDS/s1xx/concurrent_multiprotocol_tsl_api/concurrent_multiprotocol_tsl_api.html?cp=4_6_3_0_8_1"&gt;Concurrent multiprotocol implementation using the Radio Timeslot API&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a title="Radio Timeslot API usage scenarios" href="https://infocenter.nordicsemi.com/topic/sds_s140/SDS/s1xx/concurrent_multiprotocol_tsl_api/tsl_usage_examples.html?cp=4_6_3_0_8_2"&gt;Radio Timeslot API usage scenarios&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>