<?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>boot from app to bootloader SDK12 and S132 V3.0</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/18166/boot-from-app-to-bootloader-sdk12-and-s132-v3-0</link><description>Hi, 
 I&amp;#39;m porting our project from sdk10 to sdk12 with SD S132 V3.0.0. I cannot find a way to reset the device in app and boot in bootloader in order to do a OTA update. 
 In sdk10 was as easy as to set the GPREGRET register and then perform the reset</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 09 Dec 2016 10:21:00 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/18166/boot-from-app-to-bootloader-sdk12-and-s132-v3-0" /><item><title>RE: boot from app to bootloader SDK12 and S132 V3.0</title><link>https://devzone.nordicsemi.com/thread/70133?ContentTypeID=1</link><pubDate>Fri, 09 Dec 2016 10:21:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e918cfa9-8433-44b0-a3ec-71c600a908a5</guid><dc:creator>Adrian Eggenberger</dc:creator><description>&lt;p&gt;Hi Darren,
All that&amp;#39;s needed on the bootloader side is to add the upper code at the top of the nrf_dfu_enter_check function.
Regards Adrian&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: boot from app to bootloader SDK12 and S132 V3.0</title><link>https://devzone.nordicsemi.com/thread/70132?ContentTypeID=1</link><pubDate>Thu, 08 Dec 2016 19:09:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:abe1c77d-1beb-44f3-9a7d-eb839b1fbe3f</guid><dc:creator>WestCoastDaz</dc:creator><description>&lt;p&gt;Adrian,&lt;/p&gt;
&lt;p&gt;Are you willing to share your changes on using GPREGRET?  I&amp;#39;m just about to do this on our design.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: boot from app to bootloader SDK12 and S132 V3.0</title><link>https://devzone.nordicsemi.com/thread/70131?ContentTypeID=1</link><pubDate>Mon, 05 Dec 2016 10:58:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ad9db4c9-0ab8-4095-be8c-cd7380840a44</guid><dc:creator>JosePastor23</dc:creator><description>&lt;p&gt;Thanks Adrian, It worked. I will have into account for future updates. I will also create a new question thread to let nordic explain the bootloader check method.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: boot from app to bootloader SDK12 and S132 V3.0</title><link>https://devzone.nordicsemi.com/thread/70130?ContentTypeID=1</link><pubDate>Mon, 05 Dec 2016 10:29:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f1834266-1414-4f6e-bf5f-02a577a70e79</guid><dc:creator>Adrian Eggenberger</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;The new signed DFU doesn&amp;#39;t use the GPREGRET registers to decide if the bootloader should enter bootloader mode or not. The new mechanism is based on a bit in the bootloader settings that is manipulated by the application. I personally would have preferred the method with the GPREGRET because I don&amp;#39;t like that fact that the application must write to the bootloader settings. In my opinion only the bootloader should write to the bootloader settings.
Side question: Why did Nordic change the way to enter the bootloader?&lt;/p&gt;
&lt;p&gt;The new implemenation of Nordic is in the service implementation ble_dfu.c. This file is also used in there buttonless example.&lt;/p&gt;
&lt;p&gt;For my own projects modified there code to the old behavior with the GPREGRET registers. In the implementation of the function &amp;quot;nrf_dfu_enter_check&amp;quot; I&amp;#39;ve added the following code:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;if (NRF_POWER-&amp;gt;GPREGRET == BOOTLOADER_DFU_START)
{
  NRF_POWER-&amp;gt;GPREGRET = 0;
  return true;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Additionally the define for BOOTLOADER_DFU_START must be added. With this modification you could enter the bootloader the same way as you did with the old basic DFU.&lt;/p&gt;
&lt;p&gt;Regards Adrian&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>