<?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>Running the SES v4.12 debugger on nRF5_SDK_15.3.0_69ac345 crashes</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/102567/running-the-ses-v4-12-debugger-on-nrf5_sdk_15-3-0_69ac345-crashes</link><description>When running the SES v4.12 debugger on nRF5_SDK_15.3.0_69ac345, the following error is generated: 
 ERROR 3 [NRF_ERROR_INTERNAL] at C:\nRF5_SDK_15.3.0_59ac345\examples\ble_peripheral\ble_app_buttonless_dfu\bluetooth.c:290 PC at: 0x0003402DEnd of error</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 04 Aug 2023 09:33:58 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/102567/running-the-ses-v4-12-debugger-on-nrf5_sdk_15-3-0_69ac345-crashes" /><item><title>RE: Running the SES v4.12 debugger on nRF5_SDK_15.3.0_69ac345 crashes</title><link>https://devzone.nordicsemi.com/thread/439867?ContentTypeID=1</link><pubDate>Fri, 04 Aug 2023 09:33:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c5dba36f-4792-40b8-88ef-9c628a8ba2a3</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Kishan,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Error 0x86 =&amp;nbsp;NRF_ERROR_STORAGE_FULL. I don&amp;#39;t think it&amp;#39;s good idea to &amp;quot;force&amp;quot; it to 0x00 (and you can&amp;#39;t).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When the storage is full you need to free it up by calling garbage collection (fds_gc), you may want to check what&amp;#39;s the flash space you defined and how much you data you plan to store.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Running the SES v4.12 debugger on nRF5_SDK_15.3.0_69ac345 crashes</title><link>https://devzone.nordicsemi.com/thread/439802?ContentTypeID=1</link><pubDate>Fri, 04 Aug 2023 03:46:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:94989119-7d01-4942-9977-786bd53d2565</guid><dc:creator>kishanjsing</dc:creator><description>&lt;p&gt;Some more details:&lt;/p&gt;
&lt;p&gt;The error occurs when&amp;nbsp;pds_init() is executed from peerManagerInit():&lt;/p&gt;
&lt;p&gt;ret_code_t pm_init(void)&lt;br /&gt;{&lt;br /&gt; ret_code_t err_code;&lt;/p&gt;
&lt;p&gt;err_code = pds_init();&lt;br /&gt; if (err_code != NRF_SUCCESS)&lt;br /&gt; {&lt;br /&gt; NRF_LOG_ERROR(&amp;quot;%s failed because pds_init() returned %s.&amp;quot;, __func__, nrf_strerror_get(err_code));&lt;br /&gt; return NRF_ERROR_INTERNAL;&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;err_code = pdb_init();&lt;br /&gt; if (err_code != NRF_SUCCESS)&lt;br /&gt; {&lt;br /&gt; NRF_LOG_ERROR(&amp;quot;%s failed because pdb_init() returned %s.&amp;quot;, __func__, nrf_strerror_get(err_code));&lt;br /&gt; return NRF_ERROR_INTERNAL;&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;err_code = sm_init();&lt;br /&gt; if (err_code != NRF_SUCCESS)&lt;br /&gt; {&lt;br /&gt; NRF_LOG_ERROR(&amp;quot;%s failed because sm_init() returned %s.&amp;quot;, __func__, nrf_strerror_get(err_code));&lt;br /&gt; return NRF_ERROR_INTERNAL;&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;err_code = smd_init();&lt;br /&gt; if (err_code != NRF_SUCCESS)&lt;br /&gt; {&lt;br /&gt; NRF_LOG_ERROR(&amp;quot;%s failed because smd_init() returned %s.&amp;quot;, __func__, nrf_strerror_get(err_code));&lt;br /&gt; return NRF_ERROR_INTERNAL;&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;err_code = gcm_init();&lt;br /&gt; if (err_code != NRF_SUCCESS)&lt;br /&gt; {&lt;br /&gt; NRF_LOG_ERROR(&amp;quot;%s failed because gcm_init() returned %s.&amp;quot;, __func__, nrf_strerror_get(err_code));&lt;br /&gt; return NRF_ERROR_INTERNAL;&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;err_code = gscm_init();&lt;br /&gt; if (err_code != NRF_SUCCESS)&lt;br /&gt; {&lt;br /&gt; NRF_LOG_ERROR(&amp;quot;%s failed because gscm_init() returned %s.&amp;quot;, __func__, nrf_strerror_get(err_code));&lt;br /&gt; return NRF_ERROR_INTERNAL;&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;internal_state_reset();&lt;/p&gt;
&lt;p&gt;m_peer_rank_initialized = false;&lt;br /&gt; m_module_initialized = true;&lt;/p&gt;
&lt;p&gt;// If PM_PEER_RANKS_ENABLED is 0, these variables are unused.&lt;br /&gt; UNUSED_VARIABLE(m_peer_rank_initialized);&lt;br /&gt; UNUSED_VARIABLE(m_peer_rank_token);&lt;br /&gt; UNUSED_VARIABLE(m_current_highest_peer_rank);&lt;br /&gt; UNUSED_VARIABLE(m_highest_ranked_peer);&lt;/p&gt;
&lt;p&gt;return NRF_SUCCESS;&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;ret_code_t pds_init()&lt;br /&gt;{&lt;br /&gt; ret_code_t ret;&lt;/p&gt;
&lt;p&gt;// Check for re-initialization if debugging.&lt;br /&gt; NRF_PM_DEBUG_CHECK(!m_module_initialized);&lt;/p&gt;
&lt;p&gt;ret = fds_register(fds_evt_handler);&lt;br /&gt; if (ret != NRF_SUCCESS)&lt;br /&gt; {&lt;br /&gt; NRF_LOG_ERROR(&amp;quot;Could not initialize flash storage. fds_register() returned 0x%x.&amp;quot;, ret);&lt;br /&gt; return NRF_ERROR_INTERNAL;&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;ret = fds_init();&lt;br /&gt; if (ret != NRF_SUCCESS)&lt;br /&gt; {&lt;br /&gt; NRF_LOG_ERROR(&amp;quot;Could not initialize flash storage. fds_init() returned 0x%x.&amp;quot;, ret);&lt;br /&gt; return NRF_ERROR_STORAGE_FULL;&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;peer_id_init();&lt;br /&gt; peer_ids_load();&lt;/p&gt;
&lt;p&gt;m_module_initialized = true;&lt;/p&gt;
&lt;p&gt;return NRF_SUCCESS;&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;pds_init()returns error code 0x0x00000086. When I force it to&amp;nbsp;&lt;span&gt;0x&lt;/span&gt;&lt;span&gt;0x00000000, the ERROR 3 disappears. But the debugger ends up then generating a &amp;quot;SOFT DEVICE ASSERTION FAILED&amp;quot; error via app_error_fault_handler():&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;void app_error_fault_handler(uint32_t id, uint32_t pc, uint32_t info)&lt;br /&gt;{&lt;br /&gt; __disable_irq();&lt;/p&gt;
&lt;p&gt;switch (id)&lt;br /&gt; {&lt;br /&gt;#if defined(SOFTDEVICE_PRESENT) &amp;amp;&amp;amp; SOFTDEVICE_PRESENT&lt;br /&gt; case NRF_FAULT_ID_SD_ASSERT:&lt;br /&gt; SEGGER_RTT_printf(0, &amp;quot;SOFTDEVICE: ASSERTION FAILED&amp;quot;);&lt;br /&gt; break;&lt;br /&gt; case NRF_FAULT_ID_APP_MEMACC:&lt;br /&gt; SEGGER_RTT_printf(0, &amp;quot;SOFTDEVICE: INVALID MEMORY ACCESS&amp;quot;);&lt;br /&gt; break;&lt;br /&gt;#endif&lt;br /&gt; case NRF_FAULT_ID_SDK_ASSERT:&lt;br /&gt; {&lt;br /&gt; assert_info_t * p_info = (assert_info_t *)info;&lt;br /&gt; SEGGER_RTT_printf(0, &amp;quot;ASSERTION FAILED at %s:%u&amp;quot;,&lt;br /&gt; p_info-&amp;gt;p_file_name,&lt;br /&gt; p_info-&amp;gt;line_num);&lt;br /&gt; break;&lt;br /&gt; }&lt;br /&gt; case NRF_FAULT_ID_SDK_ERROR:&lt;br /&gt; {&lt;br /&gt; error_info_t * p_info = (error_info_t *)info;&lt;br /&gt; SEGGER_RTT_printf(0, &amp;quot;ERROR %u [%s] at %s:%u\r\nPC at: 0x%08x&amp;quot;,&lt;br /&gt; p_info-&amp;gt;err_code,&lt;br /&gt; nrf_strerror_get(p_info-&amp;gt;err_code),&lt;br /&gt; p_info-&amp;gt;p_file_name,&lt;br /&gt; p_info-&amp;gt;line_num,&lt;br /&gt; pc);&lt;br /&gt; SEGGER_RTT_printf(0, &amp;quot;End of error report&amp;quot;);&lt;br /&gt; break;&lt;br /&gt; }&lt;br /&gt; default:&lt;br /&gt; SEGGER_RTT_printf(0, &amp;quot;UNKNOWN FAULT at 0x%08X&amp;quot;, pc);&lt;br /&gt; break;&lt;br /&gt; }&lt;/p&gt;
&lt;p&gt;NRF_BREAKPOINT_COND;&lt;br /&gt; // On assert, the system can only recover with a reset.&lt;/p&gt;
&lt;p&gt;#ifndef DEBUG&lt;br /&gt; SEGGER_RTT_printf(0, &amp;quot;System reset&amp;quot;);&lt;br /&gt; NVIC_SystemReset();&lt;br /&gt;#else&lt;br /&gt; app_error_save_and_stop(id, pc, info);&lt;br /&gt;#endif // DEBUG&lt;br /&gt;}&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>