<?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>Jump from bootloader to application, SDK 15.3, no SoftDevice</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/48936/jump-from-bootloader-to-application-sdk-15-3-no-softdevice</link><description>SDK 15.3 NRF52840 
 Hi, I&amp;#39;m trying to write a very basic bootloader for my application and the memory map is more or less as follows. 0x0000-0x10000 Bootloader 0x10000-0x70000 Bank0 0x70000-0xD0000 Bank1 0xFF000-0xFFFFF Proprietary Flash area 
 In the</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 26 Jun 2019 01:15:29 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/48936/jump-from-bootloader-to-application-sdk-15-3-no-softdevice" /><item><title>RE: Jump from bootloader to application, SDK 15.3, no SoftDevice</title><link>https://devzone.nordicsemi.com/thread/194739?ContentTypeID=1</link><pubDate>Wed, 26 Jun 2019 01:15:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6fabfbfb-5797-443f-8665-fe5c5390ff7b</guid><dc:creator>Cecylia</dc:creator><description>&lt;p&gt;Hi Einar,&lt;/p&gt;
&lt;p&gt;I really appreciate your prompt and very helpful feedback!&lt;br /&gt;I found more info &lt;a href="http://www.keil.com/support/docs/3913.htm"&gt;online&lt;/a&gt; based on the keyword &amp;quot;VTOR&amp;quot;, since I wasn&amp;#39;t sure how to change the VTOR.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I just realized that these 2 lines in &lt;em&gt;nrf_bootloader_app_start&lt;/em&gt; actually disable all the interrupts:&lt;br /&gt; NVIC-&amp;gt;ICER[0]=0xFFFFFFFF;&lt;br /&gt; NVIC-&amp;gt;ICPR[0]=0xFFFFFFFF;&lt;/p&gt;
&lt;p&gt;I simply added this line right after:&lt;br /&gt; SCB-&amp;gt;VTOR = (uint32_t) start_addr;&lt;/p&gt;
&lt;p&gt;And continued with &lt;em&gt;nrf_bootloader_app_start_final&lt;/em&gt; which eventually calls &lt;em&gt;app_start&lt;/em&gt; that takes care of setting the &lt;em&gt;new_msp&lt;/em&gt; and new &lt;em&gt;reset_handler&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;It works :) No more hard fault.&lt;br /&gt;&lt;br /&gt;Thanks!!&lt;br /&gt;Cecylia&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Jump from bootloader to application, SDK 15.3, no SoftDevice</title><link>https://devzone.nordicsemi.com/thread/194639?ContentTypeID=1</link><pubDate>Tue, 25 Jun 2019 12:03:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:401d1d47-8db4-4d0f-9abe-4ce47e893b10</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote user=""]1) Is this design feasible, or do I need to use MBR?[/quote]
&lt;p&gt;Yes, it is feasible. The reason for having an MBR is that it allows the update of the bootloader itself. Since you don&amp;#39;t use the SoftDevice and as long as you don&amp;#39;t need a way to (safely) update the bootloader, then there is no need for an MBR.&lt;/p&gt;
[quote user=""]2) Do i need to do anything to forward interrupt to application?[/quote]
&lt;p&gt;Yes. Since you don&amp;#39;t use MBR or SoftDevice, the most straightforward would be to simply use the &lt;a href="http://infocenter.arm.com/help/topic/com.arm.doc.dai0321a/BIHHDGBC.html?resultof=%22%56%54%4f%52%22%20%22%76%74%6f%72%22%20"&gt;VTOR&lt;/a&gt;.&lt;/p&gt;
[quote user=""]3) I don&amp;#39;t see interrupts_disable in SDK 15.3. Do I need to copy this from the old code?[/quote]
&lt;p&gt;The interrupt forwarding in the bootloader example in the SDK depends on the MBR. You can see how it is done there in the implementation of&amp;nbsp;nrf_dfu_mbr_irq_forward_address_set() in &amp;lt;SDK15.3&amp;gt;\components\libraries\bootloader\dfu\nrf_dfu_mbr.c, but this is not relevant if you don&amp;#39;t use the MBR.&lt;/p&gt;
[quote user=""]4) The new jump_to_addr is slightly different from the older StartApplication. But they should mean the same right?[/quote]
&lt;p&gt;&amp;nbsp;Yes.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>