<?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>Implementation of jumping from bootloader to application</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/106844/implementation-of-jumping-from-bootloader-to-application</link><description>Hello. We recently started working with the new nrf connect sdk and we need to implement a very simple bootloader that would only jump to the main application at a specific address. In this regard, there are several questions: 
 1) the bootloader should</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 15 Jul 2024 07:25:11 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/106844/implementation-of-jumping-from-bootloader-to-application" /><item><title>RE: Implementation of jumping from bootloader to application</title><link>https://devzone.nordicsemi.com/thread/493815?ContentTypeID=1</link><pubDate>Mon, 15 Jul 2024 07:25:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:012b9c23-28ea-4136-b7d1-6eae4764b7c9</guid><dc:creator>lorabarney</dc:creator><description>&lt;p&gt;Hello @ &lt;a href="https://geometry-dash-lite.com"&gt;geometry dash lite&lt;/a&gt;, I think I can answer some questions.&lt;/p&gt;
&lt;p&gt;1. The bootloader typically starts from address 0, which is the reset vector address. To set the exact address, you need to modify the linker script used for the bootloader application. The linker script specifies the memory layout and sections of the application. By adjusting the memory region definitions in the linker script, you can set the bootloader&amp;#39;s start address. Locate the linker script for your bootloader project and modify the memory region corresponding to the bootloader&amp;#39;s start address.&lt;/p&gt;
&lt;p&gt;2. The implementation of your simple bootloader code snippet looks correct for jumping to the main application. However, you also need to ensure that the vector table is set correctly. In the nRF Connect SDK, the vector table is typically defined in the linker script for the application. The application&amp;#39;s linker script should include a vector table section that specifies the address of the interrupt vector table. The bootloader should not modify the vector table but should rely on the one defined in the application&amp;#39;s linker script.&lt;/p&gt;
&lt;p&gt;3.To set the offset for the firmware image in the application, you can modify the linker script of the application. Locate the application&amp;#39;s linker script and adjust the memory region definitions to set the desired offset for the firmware image. This offset should match the address where the bootloader expects the main application to be located.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>