<?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>Force softDevice assert</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/60170/force-softdevice-assert</link><description>Hi, 
 Strange as this might sound: is there a way to gracefully force a softDevice assert such that I can get assert_nrf_callback() and see the call stack with DEAD_BEEF in a controlled manner? I want to test some error scenarios in my application in</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 17 Apr 2020 13:46:56 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/60170/force-softdevice-assert" /><item><title>RE: Force softDevice assert</title><link>https://devzone.nordicsemi.com/thread/245259?ContentTypeID=1</link><pubDate>Fri, 17 Apr 2020 13:46:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6af5de7a-1476-45c9-b47b-d361aced79f9</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;It&amp;#39;s the fault-handler used in the&amp;nbsp;sd_softdevice_enable() call that will be used. This is app_error_fault_handler() , and not&amp;nbsp;&lt;span&gt;assert_nrf_callback().&lt;br /&gt;&lt;br /&gt;0x00000A60 is the hardfault exception handler inside the MBR. It&amp;#39;s normally forwarded to the main application, but&amp;nbsp;will get trapped if breakpoint on hardfault is enabled in SES. &lt;br /&gt;You can disable it like this:&lt;br /&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-66eca5d25bf845bda2ec86039084dd54/pastedimage1587130782995v1.png" alt=" " /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Force softDevice assert</title><link>https://devzone.nordicsemi.com/thread/244838?ContentTypeID=1</link><pubDate>Thu, 16 Apr 2020 05:45:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cb4c95d8-e7cf-4d6f-b999-4278c7b32e8f</guid><dc:creator>Tilak</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Thank you for the tip. I tried your code even with 11 second delay after idle_state_handle(); in the example ble_app_blinky_pca10040_s132. I did get a crash but the callstack was blank &amp;quot;unknown function at 0xA60&amp;quot;. I did not get the Segger Embedded Studio to stop&amp;nbsp;at&amp;nbsp;DEAD_BEEF. This happened for both Release and Debug builds.&lt;/p&gt;
&lt;p&gt;Kindly let me know what am I missing to see the callstack with DEAD_BEEF? Is SoftDevice not seeing my assert_nrf_callback() function in my main.c? If possible, please do share an example.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;Tilak&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Force softDevice assert</title><link>https://devzone.nordicsemi.com/thread/244547?ContentTypeID=1</link><pubDate>Tue, 14 Apr 2020 19:05:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8ca5f7b4-b32d-4811-a620-fd21954c92e4</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;Disabling interrupts long enough should do the trick:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;__disable_irq();
nrf_delay_ms(1000);
__enable_irq();&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Adjust the time if you use longer advertising or connection interval.&lt;/p&gt;
&lt;p&gt;The softdevice uses timers to check whether BTLE timing was met and asserts if not.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>