<?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>Bootloader nRF52</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/20166/bootloader-nrf52</link><description>Hi all, 
 I am trying to &amp;quot;add&amp;quot; the DFU bootloader to my application and I have some questions regarding it: 
 my thought are: 
 
 add to DFU bootloader example code, part of my code adding the BLE capitability 
 
 -my code will run normally until</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 04 Jul 2019 08:01:41 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/20166/bootloader-nrf52" /><item><title>RE: Bootloader nRF52</title><link>https://devzone.nordicsemi.com/thread/196408?ContentTypeID=1</link><pubDate>Thu, 04 Jul 2019 08:01:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:60431ce1-7938-4bc8-a886-f48ee06b791c</guid><dc:creator>twittich</dc:creator><description>[quote userid="2121" url="~/f/nordic-q-a/20166/bootloader-nrf52/78552"]You should consider Option 1 only when you want to do background DFU, where you device functional normally when you are receiving DFU. But this requires lots of change in the bootloader and on how to integrate it with your application.[/quote]
&lt;p&gt;Hello&lt;/p&gt;
&lt;p&gt;how to do dfu in background? For this option the dfu device has to be there all time while the application is normally running...&lt;/p&gt;
&lt;p&gt;Thanks in advance&lt;/p&gt;
&lt;p&gt;Twittich&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader nRF52</title><link>https://devzone.nordicsemi.com/thread/78557?ContentTypeID=1</link><pubDate>Wed, 08 Mar 2017 08:20:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9696b48a-1bc0-416b-a856-f73966efae37</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Arepa,&lt;/p&gt;
&lt;p&gt;Yes you can do that also. This requires you to modify the bootloader. The reason I suggested you to follow what we did in SDK v12 is for the compatibility with the future bootloader. But if you are OK with modifying the bootloader, then what you do is totally fine.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader nRF52</title><link>https://devzone.nordicsemi.com/thread/78556?ContentTypeID=1</link><pubDate>Tue, 07 Mar 2017 19:00:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:027534bf-4f63-4c47-963d-831685bb5dc0</guid><dc:creator>Arepa</dc:creator><description>&lt;p&gt;Hey Hung,&lt;/p&gt;
&lt;p&gt;Please correct me If I am wrong:&lt;/p&gt;
&lt;p&gt;inside the app I am setting flags using gpregret and softreset&lt;/p&gt;
&lt;p&gt;I edited the Bootloader_secure to check for the flags I put in the app for perform the DFU&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader nRF52</title><link>https://devzone.nordicsemi.com/thread/78555?ContentTypeID=1</link><pubDate>Tue, 07 Mar 2017 13:46:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ef41b9e2-4f52-46e8-9559-24627f81e2cd</guid><dc:creator>Arepa</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;I am using secure bootloader programing just the softdevice and the bootloader. The DFU works using my application with the public key I generated.&lt;/p&gt;
&lt;p&gt;Inside my application itseft has nothing related to buttonless DFU so I am trying to jump to the bootloader to add buttonless DFU update or just initializate the bootloader_secure using the code I posted above (bad it only works for SDK11 and earlier :( ). Now I am looking at enter_bootloader() but it looks I have to include the ble_dfu to my project and the related items
I want start the DFU bootloader from the application not using the DFU service.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader nRF52</title><link>https://devzone.nordicsemi.com/thread/78553?ContentTypeID=1</link><pubDate>Tue, 07 Mar 2017 10:15:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c823dc62-17ca-44f6-a41b-694ed06bbc9c</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Arepa,&lt;/p&gt;
&lt;p&gt;Which bootloader are you using ? If you are using SDK v12.2, there is no device manager library needed.&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t see the difference between option 2 and option 3.&lt;/p&gt;
&lt;p&gt;I would suggest you to test first with just the softdevice and the bootloader, try to do a DFU update with it. Please follow the documentation on how to do DFU.
I assume you updated the bootloader with the public key you generated.&lt;/p&gt;
&lt;p&gt;You don&amp;#39;t need to modify your application to add anything related to the DFU bootloader if you don&amp;#39;t plan to have buttonless DFU update.&lt;/p&gt;
&lt;p&gt;To be able to flash all three softdevice, bootloader, application using your programmer (instead of DFU ) you need to generate the bootloader setting using nrfutil.exe tool. This is because the bootloader will check in the bootloader setting to see if a valid application if flashed and if CRC is matched.&lt;/p&gt;
&lt;p&gt;After you have everything running you can start to add the buttonless option, which is writing to a flag in the bootloader setting and trigger a soft reset after the flash writing is finished. Please have a look at enter_bootloader() function in  experimental_ble_app_buttonless_dfu example.&lt;/p&gt;
&lt;p&gt;(Writing to GPREGRET was the way to enter bootloader in SDK v11 and earlier)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader nRF52</title><link>https://devzone.nordicsemi.com/thread/78554?ContentTypeID=1</link><pubDate>Mon, 06 Mar 2017 15:53:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:935dc19a-31d3-4645-99e5-0f056077d6b6</guid><dc:creator>Arepa</dc:creator><description>&lt;p&gt;Hi Hung,
Option 3 could be... Use the base DFU example and keep own my aplication apart.&lt;/p&gt;
&lt;p&gt;I mean program the DFU example to the nRF52&lt;/p&gt;
&lt;p&gt;Program my own apllication so doing the aplication jump to the DFU bootloader&lt;/p&gt;
&lt;p&gt;I am adding on my aplication:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;	err_code = sd_power_gpregret_clr(0, 0xFF);
APP_ERROR_CHECK(err_code);
err_code = sd_power_gpregret_set(0, BOOTLOADER_DFU_START);

APP_ERROR_CHECK(err_code);

sd_nvic_SystemReset();   

NRF_POWER-&amp;gt;GPREGRET = BOOTLOADER_DFU_START;

NVIC_SystemReset();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;at the moment I am able to flash the bootloader, aplication and softdevice to my nRF52 but It keeps stuck on the bootloader, I am able to make the DFU, but it still keeps in the bootloader. Is it related to the bootloader settings? or BOOTLOADER_SETTINGS_ADDRESS?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader nRF52</title><link>https://devzone.nordicsemi.com/thread/78552?ContentTypeID=1</link><pubDate>Mon, 06 Mar 2017 09:59:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e47e376b-7d02-4887-879e-2121e87e037e</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Arepa,&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t think option 1 would be a very good one. With this option, you have to do &amp;quot;bootloader update&amp;quot; whenever you want to update your firmware. Application update option has no use.
When you do bootloader update, you are limited to the size of the bootloader which is written in UICR and can&amp;#39;t be changed.&lt;/p&gt;
&lt;p&gt;Option 2 is much better one.&lt;/p&gt;
&lt;p&gt;You should consider Option 1 only when you want to do background DFU, where you device functional normally when you are receiving DFU. But this requires lots of change in the bootloader and on how to integrate it with your application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>