<?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>SDK14.2 DFU power cycle issue</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/29851/sdk14-2-dfu-power-cycle-issue</link><description>Situation: Trying to upgrade previous versions of the SD and BL (V3.0.0) to (V5.0.0)
Problem: device power cycles after a new application is flashed to the device into the V5.0.0 SD and BL. 
 Steps: 
 
 Take target device, including dev board, and</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 30 Jan 2018 09:59:06 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/29851/sdk14-2-dfu-power-cycle-issue" /><item><title>RE: SDK14.2 DFU power cycle issue</title><link>https://devzone.nordicsemi.com/thread/118649?ContentTypeID=1</link><pubDate>Tue, 30 Jan 2018 09:59:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3e10f09e-d991-458a-bea0-d7d7cf1e1bd1</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Sensorion,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m sorry that I didn&amp;#39;t think of the issue. It&amp;#39;s a known issue that when the size of fds changed, there is a chance that the swap page is not recognized and throw FDS_ERR_NO_PAGES  when you call fds_init().&lt;/p&gt;
&lt;p&gt;Currently there isn&amp;#39;t a function to format fds pages for the first use. You may need to erase the pages manually using fstorage. We also think of adding an option in the DFU bootloader to erase customer data when doing DFU but it&amp;#39;s not implemented.&lt;/p&gt;
&lt;p&gt;For now we suggest to keep the number of pages the same between different firmware version, or only increase not decrease number of pages, should also work.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDK14.2 DFU power cycle issue</title><link>https://devzone.nordicsemi.com/thread/118648?ContentTypeID=1</link><pubDate>Mon, 29 Jan 2018 15:15:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e9a090ee-412a-42a9-bec6-5473f56db6c5</guid><dc:creator>Sensorion</dc:creator><description>&lt;p&gt;The error was an application level error not a boot loader error. The boot loaders for both the SD v3.0.0 and SD v5.0.0 work correctly as does the package used to update a target chip from v3 to v5. The error was in the interaction between the FDS initialization in the v3 app and then the v5 app.&lt;/p&gt;
&lt;p&gt;The application I was using for SD v3(App3) declared 8 virtual pages of FDS memory space. The new version based on SD v5(App5) only had 4 pages declared. When App3 was flashed to the chip it initialized 8 virtual pages, 7 data and 1 swap. These pages are not erased during the subsequent DFU processes. When App5 is installed and run it tries to initialize the FDS system and finds 4 initialized data pages but no swap page. This creates a no memory error, which causes a system reset.&lt;/p&gt;
&lt;p&gt;The solution was to set the number of virtual pages in App5 to 8.&lt;/p&gt;
&lt;p&gt;I have not experimented with this but perhaps it is possible that changing the number of virtual pages in this manner could result in the same error even without going through the update process. Also the system should have some means of dealing with the situation where it finds several data pages and no swap page.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDK14.2 DFU power cycle issue</title><link>https://devzone.nordicsemi.com/thread/118644?ContentTypeID=1</link><pubDate>Mon, 29 Jan 2018 15:05:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6edfcd90-0502-4b82-a65e-45ec5474352d</guid><dc:creator>Sensorion</dc:creator><description>&lt;p&gt;The last byte of the sequence is not in the register space and I beleive that this is some form of checksum maybe, generated when the data is read from the target nRF chip. The line I quoted there breaks down to 4 UICR registers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;00000015&lt;/li&gt;
&lt;li&gt;00000015&lt;/li&gt;
&lt;li&gt;FFFFFFFF&lt;/li&gt;
&lt;li&gt;FFFFFFFE&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDK14.2 DFU power cycle issue</title><link>https://devzone.nordicsemi.com/thread/118652?ContentTypeID=1</link><pubDate>Mon, 29 Jan 2018 09:57:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d1ea6b12-08c5-496e-8fc2-4aa788e19a22</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Your understanding is correct. But &amp;quot; So maybe the system thinks it is still in a DFU downloading state? &amp;quot; is not correct, if it&amp;#39;s still DFU download state, it shouldn&amp;#39;t call nrf_bootloader_app_start().&lt;/p&gt;
&lt;p&gt;So you dumped the flash out and can find that the application is at correct location ? And there is no different when you diff the flash if you flash SD+APP+BL (SDv5) except for the swap bank?&lt;/p&gt;
&lt;p&gt;Have you tried testing with our SDK examples as the application, instead of yours ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDK14.2 DFU power cycle issue</title><link>https://devzone.nordicsemi.com/thread/118647?ContentTypeID=1</link><pubDate>Mon, 29 Jan 2018 09:50:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:865ac8fe-702c-4a08-99c7-dadbe8a0ff08</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;There are 2 bits different in the 2 cases, have you found what the second bit is about  ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDK14.2 DFU power cycle issue</title><link>https://devzone.nordicsemi.com/thread/118646?ContentTypeID=1</link><pubDate>Sun, 28 Jan 2018 21:38:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f7fa2c72-df53-408e-abeb-70c90905d29d</guid><dc:creator>Sensorion</dc:creator><description>&lt;p&gt;The UICR bit that is different is an indicator that the NFC pins are to be used as GPIO.  Not the source of my on going issue.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDK14.2 DFU power cycle issue</title><link>https://devzone.nordicsemi.com/thread/118645?ContentTypeID=1</link><pubDate>Sun, 28 Jan 2018 19:26:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a6bb4a6c-628d-4d46-b2bc-1fc484e8751c</guid><dc:creator>Sensorion</dc:creator><description>&lt;p&gt;After recreating the failure repeatedly and dumping the code and UICR from various stages of programming that lead to the failure and to a successful unit I can state the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The program space/code is being updated correctly, and to the correct spot in memory space&lt;/li&gt;
&lt;li&gt;The UICR is different in one field when I compare the failed unit to the passed unit.&lt;/li&gt;
&lt;li&gt;in the pass cases the entry is :  101200001500000015000000FFFFFFFFFFFFFFFFBC&lt;/li&gt;
&lt;li&gt;in the failed cases the entry is:101200001500000015000000FFFFFFFFFEFFFFFFBD&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This entry is added to the UICR after the V3.0 app is written to the device
So now I need to figure out which UICR it is and what it controls&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDK14.2 DFU power cycle issue</title><link>https://devzone.nordicsemi.com/thread/118651?ContentTypeID=1</link><pubDate>Fri, 26 Jan 2018 17:45:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b2900999-a544-4287-ae75-f65b29a3c075</guid><dc:creator>Sensorion</dc:creator><description>&lt;p&gt;I have managed to debug the boot loader while it is in this failed state.  It is failing during a call nrf_bootloader_app_start(MAIN_APPLICATION_START_ADDR)in the nrf_dfu.c file.  The system tries to call the function each power cycle. There are two spots in code where the call can be made from, bottom of main (line 128) and at the end of nrf_dfu.c (line 232). My thought is that the call is made from the nrf_dfu.c file after the successful download of a new application, and that the call from the file main is made if the system is turned on and there is no active DFU process and a valid app is found. I my debugging the only place this function is called from is from the nrf_dfu file. So maybe the system thinks it is still in a DFU downloading state?
I used 12.2 for the first loader and 14.2 for the next.  The fix you referred to before is active in the 14.2 loader.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDK14.2 DFU power cycle issue</title><link>https://devzone.nordicsemi.com/thread/118654?ContentTypeID=1</link><pubDate>Tue, 23 Jan 2018 16:25:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:30e1cc02-075e-4af3-b021-2bd368249297</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Please try debug step into the new bootloader code and see why the new application is not executed.
Another thing you can do is to read the flash out into a hex (nrfjprog --readcode) and then use compare tool (notepad++ for example) to check if the correct image is stored in the correct place or not.&lt;/p&gt;
&lt;p&gt;You haven&amp;#39;t revealed which SDKs you used.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDK14.2 DFU power cycle issue</title><link>https://devzone.nordicsemi.com/thread/118653?ContentTypeID=1</link><pubDate>Tue, 23 Jan 2018 02:33:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:14695dff-3945-41ef-8900-6cabb453bb19</guid><dc:creator>Sensorion</dc:creator><description>&lt;p&gt;In my case the update of the SD + BL is successful.  Also the DFU process of loading an app into the system after the SD + BL update is also successful but the unit then gets into some type of power cycle loop. I added a triple blink LED pattern to the start of my boot loader as an indicator, and this is the only pattern to occur.&lt;/p&gt;
&lt;p&gt;My thought is that the issue is in that something must be messed up when the boot loader tries to load the app.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDK14.2 DFU power cycle issue</title><link>https://devzone.nordicsemi.com/thread/118650?ContentTypeID=1</link><pubDate>Mon, 22 Jan 2018 15:23:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1a2750a4-50d1-4a72-b9df-f3a235fab0ca</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Sensorion,&lt;/p&gt;
&lt;p&gt;When you flash the bootloader that works on Softdevice v3.0 which SDK the bootloader belong to ?&lt;/p&gt;
&lt;p&gt;There is a bug with the bootloader in SDK v13.x, and v14.0 that updating to softdevice will not be successful. The issue is fixed in SDK v14.1 and above. Please have a look &lt;a href="https://devzone.nordicsemi.com/question/169172/update-sdblapp-from-sdk-v13-to-v14-via-dfu-fails/"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>