<?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>WDT triggers DFU  exit</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/12251/wdt-triggers-dfu-exit</link><description>Hi, 
 I have an application that requires watchdog to run continuously. And from application I have code that jumps to the bootloader without device resetting using bootloader_util_app_start() API(example ble_app_hrs). This causes watchdog to trigger</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 02 Mar 2016 14:00:31 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/12251/wdt-triggers-dfu-exit" /><item><title>RE: WDT triggers DFU  exit</title><link>https://devzone.nordicsemi.com/thread/46344?ContentTypeID=1</link><pubDate>Wed, 02 Mar 2016 14:00:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d7ab430b-6a89-409b-89aa-42b5bb6ee5a8</guid><dc:creator>Arjun</dc:creator><description>&lt;p&gt;Great. Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: WDT triggers DFU  exit</title><link>https://devzone.nordicsemi.com/thread/46343?ContentTypeID=1</link><pubDate>Wed, 02 Mar 2016 12:55:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:908f940b-ca00-4849-b76a-95001d341a4e</guid><dc:creator>John</dc:creator><description>&lt;p&gt;Hi. Sure, I just changed the wait_for_events forever loop to look like:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    static void wait_for_events(void)
{
    for (;;)
    {
		NRF_WDT-&amp;gt;RR[0] = WDT_RR_RR_Reload;					// Pat the watchdog
		
        // Wait in low power state for any events.
        uint32_t err_code = sd_app_evt_wait();
        APP_ERROR_CHECK(err_code);

        // Event received. Process it from the scheduler.
        app_sched_execute();

        if ((m_update_status == BOOTLOADER_COMPLETE) || 
            (m_update_status == BOOTLOADER_TIMEOUT)  ||
            (m_update_status == BOOTLOADER_RESET))
        {
			NRF_WDT-&amp;gt;RR[0] = WDT_RR_RR_Reload;
            // When update has completed or a timeout/reset occured we will return.
            return;
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: WDT triggers DFU  exit</title><link>https://devzone.nordicsemi.com/thread/46342?ContentTypeID=1</link><pubDate>Wed, 02 Mar 2016 09:14:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:895d203c-e9e0-4009-bb54-2c80819d0d6b</guid><dc:creator>Arjun</dc:creator><description>&lt;p&gt;Hi John Dewitt, Can you share with me an example of what you did? Thanks for the answer. I think its better to have a WDT handler in the DFU.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: WDT triggers DFU  exit</title><link>https://devzone.nordicsemi.com/thread/46341?ContentTypeID=1</link><pubDate>Wed, 02 Mar 2016 09:03:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:36164b53-d5e8-40f3-88a4-23ece514bf6f</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;oh yes, i missed to see that. In that case John&amp;#39;s suggestion is the only thing that is left as a choice :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: WDT triggers DFU  exit</title><link>https://devzone.nordicsemi.com/thread/46340?ContentTypeID=1</link><pubDate>Wed, 02 Mar 2016 08:56:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:62bf3d44-3ab4-43b7-8882-8e17bb487a52</guid><dc:creator>Arjun</dc:creator><description>&lt;p&gt;It looks like we cannot stop watchdog once enabled. Read in many forums and that seems to be the reason&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: WDT triggers DFU  exit</title><link>https://devzone.nordicsemi.com/thread/46339?ContentTypeID=1</link><pubDate>Wed, 02 Mar 2016 08:55:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:318b0f43-09ae-4b79-9337-205bf703cc06</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;wouldn&amp;#39;t it be easier to stop the watchdog in this scenario?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: WDT triggers DFU  exit</title><link>https://devzone.nordicsemi.com/thread/46338?ContentTypeID=1</link><pubDate>Tue, 01 Mar 2016 18:04:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0020cef0-2e25-45bd-9046-3e28a31effce</guid><dc:creator>John</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;You should check out section 38 of the reference manual for more details. The watchdog timer will remain running through a soft reset, so even if you used a soft reset to get to your bootloader you would have the same issue. I ended up adding a watchdog service to the bootloader to prevent it from interfering with bootloading operations.&lt;/p&gt;
&lt;p&gt;JD&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>