<?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>S130 softdevice  hard fault</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/37658/s130-softdevice-hard-fault</link><description>Hi 
 I’m using NRF51822_XXAC + s130_nrf51_2.0.0_softdevice, my program work well most of the time, but it dies at 0x000006b0 sometimes. Since I used the S130 softdevice, the chip&amp;#39;s 0~0x1b000 space is the content of S130. Since the S130 has only one hex</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 27 Aug 2018 07:09:09 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/37658/s130-softdevice-hard-fault" /><item><title>RE: S130 softdevice  hard fault</title><link>https://devzone.nordicsemi.com/thread/145817?ContentTypeID=1</link><pubDate>Mon, 27 Aug 2018 07:09:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d8260e7d-ccb0-490e-9a27-13ece4bdc596</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Either that, or in the softdevice. The processor should not be halted in the MBR region unless you have the breakpoint enabled. Have you tried to disable it?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: S130 softdevice  hard fault</title><link>https://devzone.nordicsemi.com/thread/145645?ContentTypeID=1</link><pubDate>Fri, 24 Aug 2018 10:00:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c75400ca-48ee-4ed4-b0c1-83bc53c81e19</guid><dc:creator>Ian</dc:creator><description>&lt;p&gt;Do you mean the application occur hard fault, but is it&amp;nbsp;halt here because of a breakpoint?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: S130 softdevice  hard fault</title><link>https://devzone.nordicsemi.com/thread/145128?ContentTypeID=1</link><pubDate>Tue, 21 Aug 2018 12:28:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:efc65161-a24d-49e5-9f44-5596c09bd8ee</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Looks like the CPU is halted inside the&amp;nbsp;hardfault handler located in the Master boot record ( MBR - basically an interrupt forwarder) while it should have been forwarded&amp;nbsp;&amp;nbsp;to softdevice --&amp;gt; application.&amp;nbsp; It is possible that SES has enabled &amp;quot;vector catch&amp;quot; and that is why the CPU gets halted in the MBR and not in the application/softdevice. While you are debugging, click on Debug in the menu bar and select Breakpoints -&amp;gt; Breakpoints and&amp;nbsp;make sure&amp;nbsp;to disable the breakpoint for the Hardfault exception.&lt;/p&gt;
&lt;p&gt;Breakpoint view for Cortex M4&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-4ed98560415a4512a61a4dc5e44c5515/pastedimage1534854147405v1.png" alt=" " /&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Also, do you have this function to catch softdevice assertions in your project?&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/**@brief Callback function for asserts in the SoftDevice.
 *
 * @details This function will be called in case of an assert in the SoftDevice.
 *
 * @warning This handler is an example only and does not fit a final product. You need to analyze
 *          how your product is supposed to react in case of Assert.
 * @warning On assert from the SoftDevice, the system can only recover on reset.
 *
 * @param[in] line_num   Line number of the failing ASSERT call.
 * @param[in] file_name  File name of the failing ASSERT call.
 */
void assert_nrf_callback(uint16_t line_num, const uint8_t * p_file_name)
{
    app_error_handler(DEAD_BEEF, line_num, p_file_name);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>