<?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>DFU bootloader not starting Application</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/101218/dfu-bootloader-not-starting-application</link><description>We have just created a USB DFU bootloader based on the example in the SDK. 
 Combining this into a package, I am finding that the bootloader is not successfully loading the application after running (and finding there are no updates). 
 The function </description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 27 Jun 2023 12:08:00 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/101218/dfu-bootloader-not-starting-application" /><item><title>RE: DFU bootloader not starting Application</title><link>https://devzone.nordicsemi.com/thread/433222?ContentTypeID=1</link><pubDate>Tue, 27 Jun 2023 12:08:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a791ca75-958b-4ec6-b24a-f0d66425e6d6</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Thanks for the update. I&amp;#39;m afraid I don&amp;#39;t have a good explanation for why it didn&amp;#39;t work with the original memory layout. The only thing that should matter when&amp;nbsp;the bootloader reaches the&amp;nbsp;&lt;span&gt;nrf_bootloader_app_start_final() function is that the application starts at the correct address, and I see it starts at the same address in both cases.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU bootloader not starting Application</title><link>https://devzone.nordicsemi.com/thread/433149?ContentTypeID=1</link><pubDate>Tue, 27 Jun 2023 09:06:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:189ead63-8ca8-46b0-aa04-a774c1922b9f</guid><dc:creator>Aerosensor</dc:creator><description>&lt;p&gt;I managed to fix the issue, but not entirely sure why.&amp;nbsp; Previously I had a few blocks of settings that I put after the bootloader in flash memory.&amp;nbsp; Moving these around so that the bootloader was at the end of the memory block (but before the DFU settings pages) it works.&amp;nbsp; I also increased the memory assigned to the bootloader although previously it fit, so not sure why that worked..&lt;/p&gt;
&lt;p&gt;So memory layout that works is this:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;Block	Start	End
MBR	0x0	0xAFF
SoftDevice	0x1000	0x305CF
Program	0x31000	0x489CF
		
Default settings	0xE7000	0xE703E
Version information	0xE7800	0xE7808
Calibration	0xE8000	0xE8EBF
Settings	0xE9000	0xEAFFF
Bootloader	0xEC000	0xFDFFF
Bootloader settings	0xFE000	0xFFFFF
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Previous layout that didnt work was this:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;Block	Start	End
MBR	0x0	0xAFF
SoftDevice	0x1000	0x305CF
Program	0x31000	0x489CF
		
Default settings	0xF0000	0xF07FF
Version information	0xF0800	0xF0808
Calibration	0xF1000	0xF2EBF
Settings	0xF3000	0xF3FFF
Bootloader	0xF4000	0xFC000
Bootloader settings	0xFE000	0xFFFFF
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Compiler optimisation was enabled.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: DFU bootloader not starting Application</title><link>https://devzone.nordicsemi.com/thread/433144?ContentTypeID=1</link><pubDate>Tue, 27 Jun 2023 09:04:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2ec38d81-ff1b-4533-906b-baaa51084598</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Please ensure that the &amp;#39;nrf_bootloader_app_start_final()&amp;#39; function is built using the default compiler optimization&amp;nbsp;used by by the bootloader. It is known that this function may fail if compiler optimization is disabled, as input arguments will be placed on the stack and referencing them will lead to issues when the stack pointer is updated.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>