<?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>Issues with nrf_bootloader_app_start and the SDK 16.0.0</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/65346/issues-with-nrf_bootloader_app_start-and-the-sdk-16-0-0</link><description>Hello. I am trying to implement a application jump from my normal firmware located at memory 0x19000 per recommendations based on the soft device used (s112) to a different application located at memory address 0x70000. I have implemented a version of</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 28 Aug 2020 13:46:28 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/65346/issues-with-nrf_bootloader_app_start-and-the-sdk-16-0-0" /><item><title>RE: Issues with nrf_bootloader_app_start and the SDK 16.0.0</title><link>https://devzone.nordicsemi.com/thread/267024?ContentTypeID=1</link><pubDate>Fri, 28 Aug 2020 13:46:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:31f273a9-da53-460b-b043-dd07d66e6b6c</guid><dc:creator>rsoc16</dc:creator><description>&lt;p&gt;Einar, thank you for the clarification. So I should be following the process laid out in SDK 14.2. I went ahead and implemented that, and the jump to application seems to be working like a charm.&lt;/p&gt;
&lt;p&gt;I am having faults on execution of the application after bootloader init, but this is most likely due to initialization carrying over between applications I assume...time for the next challenge!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Issues with nrf_bootloader_app_start and the SDK 16.0.0</title><link>https://devzone.nordicsemi.com/thread/267014?ContentTypeID=1</link><pubDate>Fri, 28 Aug 2020 13:04:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9e7b02f7-5684-42e7-ae1a-cd43390fafc5</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am sorry, there was a mistake in the text. I meant to say &amp;quot;This is what you should do when the application is not always immediately after the &lt;strong&gt;MBR&lt;/strong&gt;&amp;quot; (not bootloader). But the rest of the post is correct, and the key is that you need to use the approach&amp;nbsp;you see in&amp;nbsp;nrf_bootloader_app_start.c from SDK 14.2. In other words, you can &lt;em&gt;not&lt;/em&gt; use SD_MBR_COMMAND_IRQ_FORWARD_ADDRESS_SET in your case, but instead, you should use&amp;nbsp;SD_MBR_COMMAND_INIT_SD and SD_MBR_COMMAND_VECTOR_TABLE_BASE_SET.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Issues with nrf_bootloader_app_start and the SDK 16.0.0</title><link>https://devzone.nordicsemi.com/thread/267010?ContentTypeID=1</link><pubDate>Fri, 28 Aug 2020 12:53:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4bc8203a-061d-42ba-9d6f-5dc7d6048a9e</guid><dc:creator>rsoc16</dc:creator><description>&lt;p&gt;Einar, thank you for the quick response. A follow up:&lt;/p&gt;
&lt;p&gt;You said&amp;nbsp;&lt;/p&gt;
[quote userid="7377" url="~/f/nordic-q-a/65346/issues-with-nrf_bootloader_app_start-and-the-sdk-16-0-0/266998"]This is what you should do when the application is not always immediately after the bootloader.[/quote]
&lt;p&gt;So if my memory is set up to be:&lt;/p&gt;
&lt;p&gt;Top of flash&lt;/p&gt;
&lt;p&gt;Bootloader&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;0x70000 -&amp;nbsp; 0x7E000&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Application&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;0x19000 -&amp;nbsp; 0x70000&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Soft Device&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span&gt;0x1000&amp;nbsp; &amp;nbsp;-&amp;nbsp; 0x19000&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;MBR&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x0000&amp;nbsp; &amp;nbsp;-&amp;nbsp; 0x1000&lt;/p&gt;
&lt;p&gt;Bottom of flash:&amp;nbsp; &amp;nbsp; &amp;nbsp;0x0000000&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Then this means my application is not immediately after the bootloader, andI should be following that approach? Is that what you mean? I ask because I am following the approach using&amp;nbsp;&lt;span&gt;SD_MBR_COMMAND_IRQ_FORWARD_ADDRESS_SET (nrf_dfu_mbr_irq_forward_address_set()) currently, with no avail.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Issues with nrf_bootloader_app_start and the SDK 16.0.0</title><link>https://devzone.nordicsemi.com/thread/266998?ContentTypeID=1</link><pubDate>Fri, 28 Aug 2020 12:19:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7ad8f1be-e2fb-4c65-86a7-1801fa74981b</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;You need to use a different MBR command in order to jump to another address than 0x1000. Specifically, In SDK &amp;gt;= 15.0.0, the boot process consists of forwarding interrupts to the SoftDevice using SD_MBR_COMMAND_IRQ_FORWARD_ADDRESS_SET (nrf_dfu_mbr_irq_forward_address_set()), and then always jumping to address 0x1000 (SoftDevice start) instead of the application start address.&lt;/p&gt;
&lt;p&gt;Another approach, which was used up to and including SDK 14.2 was to use the SD_MBR_COMMAND_INIT_SD and SD_MBR_COMMAND_VECTOR_TABLE_BASE_SET command and start the application at a specific address. This is what you should do when the application is not always immediately after the MBR.&lt;/p&gt;
&lt;p&gt;You can compare components\libraries\bootloader\nrf_bootloader_app_start.c in SDK 14.2 and a newer SDK to see both approaches.&lt;/p&gt;
&lt;p&gt;Update: Fixed mistake referring to bootloader instead of MBR at the end of the second paragraph.&lt;/p&gt;
&lt;p&gt;Br,&lt;/p&gt;
&lt;p&gt;Einar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>