<?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>Bootloader setup</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/15866/bootloader-setup</link><description>I&amp;#39;m working on a custom bootloader; below is the step taken but it doesn&amp;#39;t workout: 
 
 By using a working UART example, change the linker script: 
 
 MEMORY
{
FLASH (rx) : ORIGIN = 0x7B000, LENGTH = 0x2B000
RAM (rwx) : ORIGIN = 0x20001F00, LENGTH</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 06 Sep 2016 11:05:29 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/15866/bootloader-setup" /><item><title>RE: Bootloader setup</title><link>https://devzone.nordicsemi.com/thread/60547?ContentTypeID=1</link><pubDate>Tue, 06 Sep 2016 11:05:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:12292074-67e8-4898-85b1-840e0bbe4479</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;@yon : Could you mark the answer as correct? (click the check mark in the circle to the left of the answer).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader setup</title><link>https://devzone.nordicsemi.com/thread/60546?ContentTypeID=1</link><pubDate>Tue, 06 Sep 2016 10:31:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:658ea4bf-c23c-4b8a-90f2-e6e8d9721a53</guid><dc:creator>yon</dc:creator><description>&lt;p&gt;noted, thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader setup</title><link>https://devzone.nordicsemi.com/thread/60545?ContentTypeID=1</link><pubDate>Tue, 06 Sep 2016 08:34:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f56020f6-1d6a-4bf5-a412-6c628dae7483</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;If there is a bootloader present,i.e. the bootloader start address is written to UICR, then the MBR will pass execution to it, Thus, you only need to reset the device in order to jump to the bootloader, i.e. call &lt;code&gt;NVIC_SystemReset();&lt;/code&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader setup</title><link>https://devzone.nordicsemi.com/thread/60544?ContentTypeID=1</link><pubDate>Tue, 06 Sep 2016 08:24:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:456f7ebe-b3ab-42c1-b33f-33ba3cb60ccd</guid><dc:creator>yon</dc:creator><description>&lt;p&gt;so if in my app i didn&amp;#39;t call ble_stack_init(), i can put the same snippet to jump back from app to bootloader?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader setup</title><link>https://devzone.nordicsemi.com/thread/60541?ContentTypeID=1</link><pubDate>Tue, 06 Sep 2016 08:12:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2854cfda-66f5-47ff-9d2a-04eacbe39a36</guid><dc:creator>yon</dc:creator><description>&lt;p&gt;Excellent! It work perfectly now. Thank you very much.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader setup</title><link>https://devzone.nordicsemi.com/thread/60543?ContentTypeID=1</link><pubDate>Tue, 06 Sep 2016 07:53:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a0d658eb-c443-482a-85e5-86589bc7ca20</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;You need to call the following snippet before calling bootloader_app_start()&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sd_mbr_command_t com = {SD_MBR_COMMAND_INIT_SD, };

err_code = sd_mbr_command(&amp;amp;com);
APP_ERROR_CHECK(err_code);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will configure the MBR to forward interrupts to the SoftDevice, which in turn will forward them to the application.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The SD_MBR_COMMAND_INIT_SD can only be issued once to the MBR, so if the application ran ble_stack_init() before jumping to the bootloader, then this snippet should &lt;strong&gt;not&lt;/strong&gt; be run in the bootloader.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader setup</title><link>https://devzone.nordicsemi.com/thread/60542?ContentTypeID=1</link><pubDate>Tue, 06 Sep 2016 02:23:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a3c6c8a8-21ec-4c12-ba06-50172eccb4ff</guid><dc:creator>yon</dc:creator><description>&lt;p&gt;Thank for your reply.&lt;/p&gt;
&lt;p&gt;We make use of example from
nRF5_SDK_11.0.0_89a8197\examples\dfu\bootloader; and we are using
Eclipse with arm gcc complier.&lt;/p&gt;
&lt;p&gt;What we have done: (using softdevice s132)&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Modified the main.c to print DFU_BANK_0_REGION_START to uart
console(putty); get 0x0001C000.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Build blinky example with:&lt;/p&gt;
&lt;p&gt;FLASH (rx) : ORIGIN = 0x1C000, LENGTH = 0x9000
RAM (rwx) :  ORIGIN = 0x20002080, LENGTH = 0x6000&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add bootloader_app_start(DFU_BANK_0_REGION_START); after &amp;quot;print
DFU_BANK_0_REGION_START&amp;quot; code.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Flash and run, uart console get 0x0001C000 but not jumping to blinky
example.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader setup</title><link>https://devzone.nordicsemi.com/thread/60540?ContentTypeID=1</link><pubDate>Mon, 29 Aug 2016 07:43:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:214e7053-a724-48b8-ad23-d3b7f59d7210</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Hi Yon, if you are using SDK v11.0.0 and S132 v2.0.0 then you should use the following linkerscript settings for the application&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;MEMORY
{
  FLASH (rx) : ORIGIN = 0x1c000, LENGTH = 0x5E000
  RAM (rwx) :  ORIGIN = 0x20002080, LENGTH = 0xdf80
}
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>