<?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>hard fault after a while when connected</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/5946/hard-fault-after-a-while-when-connected</link><description>I&amp;#39;m developing a product using a module with a built-in NRF51822 and I&amp;#39;m experiencing a strange error: 
 After staying in a connection for a long time (hours to days), the device suddenly enters into the hard fault handler. The system is simple: BLE</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 31 Mar 2015 13:28:50 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/5946/hard-fault-after-a-while-when-connected" /><item><title>RE: hard fault after a while when connected</title><link>https://devzone.nordicsemi.com/thread/20712?ContentTypeID=1</link><pubDate>Tue, 31 Mar 2015 13:28:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a6d0a725-df2d-40e6-bda5-1a36e2841807</guid><dc:creator>Jonas</dc:creator><description>&lt;p&gt;I can confirm that using the mbed Ticker can lead to a SoftDevice Assert and a hard fault. The Ticker globally disables interrupts (for ~62us) and this can lead to a timing violation within the SoftDevice. If you encounter this problem as well, use the Nordic app_timer API instead of the mbed Ticker.&lt;/p&gt;
&lt;p&gt;This should be solved in the mbed library, you don&amp;#39;t want a hard fault timebomb in your code...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: hard fault after a while when connected</title><link>https://devzone.nordicsemi.com/thread/20711?ContentTypeID=1</link><pubDate>Fri, 13 Mar 2015 14:06:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e50e171e-2723-4e48-8b48-2cf2d8d3d1b3</guid><dc:creator>Jonas</dc:creator><description>&lt;p&gt;Here is the outcome:&lt;/p&gt;
&lt;p&gt;line_num: 0x0574 -&amp;gt; 1396&lt;/p&gt;
&lt;p&gt;file_name: src\ll_lm.s0.c&lt;/p&gt;
&lt;p&gt;SoftDevice: V7.0.0&lt;/p&gt;
&lt;p&gt;which is according to Ulrich a known problem. Moved to Nordic support cases with this information.
Thanks! :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: hard fault after a while when connected</title><link>https://devzone.nordicsemi.com/thread/20710?ContentTypeID=1</link><pubDate>Fri, 13 Mar 2015 09:10:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:be2ec84d-e597-4cb2-848f-9d9140ab39d4</guid><dc:creator>Ulrich Myhre</dc:creator><description>&lt;p&gt;I am pretty sure this is a SoftDevice assert, which should call the assert callback and then produce a HardFault by doing an unaligned memory access. The parameters given to the assert callback will provide you with a file name, a line number and the current program counter. HardFaulting is intentional to stop the stack from running when in an invalid state. You could catch this by setting a breakpoint in the stack assert handler, or by writing the parameters to some transport (UART/SPI) or flash.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: hard fault after a while when connected</title><link>https://devzone.nordicsemi.com/thread/20709?ContentTypeID=1</link><pubDate>Fri, 13 Mar 2015 06:38:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a3ab88d6-d5d4-4eea-97af-c2ef11655a7f</guid><dc:creator>Jonas</dc:creator><description>&lt;p&gt;I can confirm that with softdevice 7.1.0 the address 0x000B5E1 is causing the hard fault exception. The second device did not enter the hard-fault handler yet. Can you find out what happens there?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: hard fault after a while when connected</title><link>https://devzone.nordicsemi.com/thread/20708?ContentTypeID=1</link><pubDate>Tue, 10 Mar 2015 14:37:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:abdc317d-12bb-4f83-9fee-4e3fa310b467</guid><dc:creator>Jonas</dc:creator><description>&lt;p&gt;Thanks! I haven&amp;#39;t documented with which Softdevice Version each of these instructions were causing the hard-fault. But I will try to separate these the next days with a known softdevice version and an attached debugger.
edit: I tried to catch the stack assert from mbed with a brakepoint, but it was not hit. But I will take a closer look there as well. Right now I have two devices running on a debugger, one with 7.0.0 and the other with 7.1.0. As soon as I have results I will share them to you. Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: hard fault after a while when connected</title><link>https://devzone.nordicsemi.com/thread/20707?ContentTypeID=1</link><pubDate>Tue, 10 Mar 2015 14:29:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:173253d2-b74c-4dcd-8edc-e3f49f4cec01</guid><dc:creator>Ulrich Myhre</dc:creator><description>&lt;p&gt;&lt;a href="https://www.nordicsemi.com/eng/nordic/download_resource/41923/4/35258696"&gt;ATTN_51&lt;/a&gt; will list these. CE AA D0 is an IC revision 2 chip and has support for SoftDevices up until 7.0.0, so you should be safe. 7.1.0 might also work for you if you read the migration documents carefully. There are some PANs (PAN-44, PAN-45) that required a workaround in our earlier SoftDevices, until it was removed in 8.0.0. I do not think you are affected by this.&lt;/p&gt;
&lt;p&gt;I will try to dig up exactly what happens at those memory areas, but just to make sure: 0xB65F is for 7.0.0 and 0xB5E1 is for 7.1.0, or do HardFaults happen at both points in both SoftDevices?&lt;/p&gt;
&lt;p&gt;Edit: I do not have easy access to the mbed library, and there is nothing interesting happening in the SoftDevice at those memory locations. Are you sure you are not receiving a stack assert? Those will produce hardfaults on purpose after firing.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: hard fault after a while when connected</title><link>https://devzone.nordicsemi.com/thread/20705?ContentTypeID=1</link><pubDate>Tue, 10 Mar 2015 10:36:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f11cf15f-2bac-48cb-8294-c0fde574cf94</guid><dc:creator>Jonas</dc:creator><description>&lt;p&gt;I opened two modules and here is what is written on the IC:
N51822
CEAAD0
1422FM and another has 1423FU&lt;/p&gt;
&lt;p&gt;Is D0 the revision? What revisions were affected?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: hard fault after a while when connected</title><link>https://devzone.nordicsemi.com/thread/20706?ContentTypeID=1</link><pubDate>Tue, 10 Mar 2015 09:53:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7b180af9-c277-4324-bc80-54b3931f4bce</guid><dc:creator>Ulrich Myhre</dc:creator><description>&lt;p&gt;Hi, could you please also list the IC revision or markings of the chip you are using? Our first revision had a PAN that could be the reason for this.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>