<?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>Specifying RAM address in .ld does generate spurious flash section</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/39078/specifying-ram-address-in-ld-does-generate-spurious-flash-section</link><description>Hello there, 
 
 In order to have a continuous RTT debug during DFU, I followed advices found in: 
 - https://devzone.nordicsemi.com/f/nordic-q-a/20708/rtt-logging-from-application-started-by-bootloader 
 - https://devzone.nordicsemi.com/f/nordic-q-a</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 04 Feb 2019 16:12:18 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/39078/specifying-ram-address-in-ld-does-generate-spurious-flash-section" /><item><title>RE: Specifying RAM address in .ld does generate spurious flash section</title><link>https://devzone.nordicsemi.com/thread/169359?ContentTypeID=1</link><pubDate>Mon, 04 Feb 2019 16:12:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:965827f5-7e7a-417b-acfe-1fcc96876ba1</guid><dc:creator>marto</dc:creator><description>&lt;p&gt;I contacted Segger that:&lt;/p&gt;
&lt;p&gt;- notified me that they changed the RTT licensing to allow easy redistribution&lt;/p&gt;
&lt;p&gt;- agreed to distribute such code&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Note that I modified the diff above to add the memset().&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Specifying RAM address in .ld does generate spurious flash section</title><link>https://devzone.nordicsemi.com/thread/152519?ContentTypeID=1</link><pubDate>Thu, 11 Oct 2018 13:23:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f5675b7d-2afe-48e0-909e-4fe6a1894730</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Hi Marc, you are completely correct that its in essence the same thing as using NOLOAD. So no, I don&amp;#39;t see any other solution than using NOLOAD and then using memset to zero the section before running the segger function that inits the RTT control block.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I assumed that you would use this for debugging during development only. So if you plan on adding this in the production code, then yes you would need to contact segger.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Specifying RAM address in .ld does generate spurious flash section</title><link>https://devzone.nordicsemi.com/thread/152386?ContentTypeID=1</link><pubDate>Wed, 10 Oct 2018 14:38:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8a21b195-974a-47da-93cc-3ac711c3cb18</guid><dc:creator>marto</dc:creator><description>&lt;p&gt;Hi Bj&amp;oslash;rn,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;What is the difference between your proposal and simply specifying NOLOAD (that I wanted to avoid) ?&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;  .rtt_ac_up 0x20004000 (NOLOAD) :
  {
    KEEP(*(.rtt_ac_up))
  } &amp;gt; RAM

  .rtt_ac_down 0x20004800 (NOLOAD) :
  {
    KEEP(*(.rtt_ac_down))
  } &amp;gt; RAM

  .rtt_segger 0x20004880 (NOLOAD) :
  {
    KEEP(*(.rtt_segger))
  } &amp;gt; RAM
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Do you confirm that there is no solution to zero-initialize these variables without embedding zeroes of the size of the variables ?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Regarding the Segger&amp;#39;s part, how does the license play when publishing such diffs:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="diff"&gt;diff --git a/xxx/nrf52/lib/nrf-sdk/external/segger_rtt/SEGGER_RTT.c b/xxx/nrf52/lib/nrf-sdk/external/segger_rtt/SEGGER_RTT.c
index 9d399e8..f4bcf1f 100644
--- a/xxx/nrf52/lib/nrf-sdk/external/segger_rtt/SEGGER_RTT.c
+++ b/xxx/nrf52/lib/nrf-sdk/external/segger_rtt/SEGGER_RTT.c
@@ -945,6 +945,23 @@ int SEGGER_RTT_SetNameDownBuffer(unsigned BufferIndex, const char* sName) {
   return r;
 }
 
+/*********************************************************************
+*
+*       SEGGER_RTT_Reinit
+*
+*  Function description
+*    Reinitializes the RTT Control Block.
+*
+*/
+void SEGGER_RTT_Reinit (void) {
+  // Clean-up ID since setting only &amp;quot;SEGGER RTT&amp;quot; is not enough
+  // to be detected by Jlink (at least V630c)
+  SEGGER_RTT_CB* p;
+  p = &amp;amp;_SEGGER_RTT;
+  memset(p-&amp;gt;acID, 0x00, sizeof(p-&amp;gt;acID));
+  _DoInit();
+}
+
 /*********************************************************************
 *
 *       SEGGER_RTT_Init
diff --git a/xxx/nrf52/lib/nrf-sdk/external/segger_rtt/SEGGER_RTT.h b/xxx/nrf52/lib/nrf-sdk/external/segger_rtt/SEGGER_RTT.h
index 4d3a0bb..56da5e4 100644
--- a/xxx/nrf52/lib/nrf-sdk/external/segger_rtt/SEGGER_RTT.h
+++ b/xxx/nrf52/lib/nrf-sdk/external/segger_rtt/SEGGER_RTT.h
@@ -108,6 +108,7 @@ int          SEGGER_RTT_ConfigDownBuffer (unsigned BufferIndex, const char* sNam
 int          SEGGER_RTT_GetKey           (void);
 unsigned     SEGGER_RTT_HasData          (unsigned BufferIndex);
 int          SEGGER_RTT_HasKey           (void);
+void         SEGGER_RTT_Reinit           (void);^M
 void         SEGGER_RTT_Init             (void);
 unsigned     SEGGER_RTT_Read             (unsigned BufferIndex,       void* pBuffer, unsigned BufferSize);
 unsigned     SEGGER_RTT_ReadNoLock       (unsigned BufferIndex,       void* pData,   unsigned BufferSize);
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;The RTT license says:&lt;/p&gt;
&lt;p&gt;&amp;gt; Modified versions of this software in source or linkable form *&lt;br /&gt;&amp;gt; * may not be distributed without prior consent of SEGGER&lt;/p&gt;
&lt;p&gt;Should we contact Segger ?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Marc.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Specifying RAM address in .ld does generate spurious flash section</title><link>https://devzone.nordicsemi.com/thread/151821?ContentTypeID=1</link><pubDate>Fri, 05 Oct 2018 11:50:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:586ad036-7306-479d-8805-18601078035c</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Hi Marc,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;you can tell the linker to use the section ram address as the load address, i.e.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;&amp;#160;.rtt 0x20009000: AT(0x20009000)
{
PROVIDE(__start_rtt = .);
KEEP(*(.rtt))
PROVIDE(__stop_rtt = .);
} &amp;gt; RAM&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;this gets rid of the corresponding section of all zeros in flash. However, this means that the data will not be zero-initialized, but you can memset the section in main to zeros prior to calling the RTT init function.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;/p&gt;
&lt;p&gt;Bjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Specifying RAM address in .ld does generate spurious flash section</title><link>https://devzone.nordicsemi.com/thread/151698?ContentTypeID=1</link><pubDate>Thu, 04 Oct 2018 14:24:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e184d52f-02ec-402a-b6f2-b8e760fe6c0d</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Im trying to set this up with SES, where i set the RTT sections to NOLOAD and see if that works.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Specifying RAM address in .ld does generate spurious flash section</title><link>https://devzone.nordicsemi.com/thread/151240?ContentTypeID=1</link><pubDate>Tue, 02 Oct 2018 12:49:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3128bb43-cc03-439e-b611-5ef78b14b3cb</guid><dc:creator>marto</dc:creator><description>&lt;p&gt;Hello Bj&amp;oslash;rn,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Issue 1&lt;/b&gt;: I was &amp;quot;complaining&amp;quot; on the compiler (well the linker) that allocates flash storage for my variables in the section reserved for the MBR. I understand that this page should be reserved, but I also understand from your explanation that there is no &amp;quot;problem&amp;quot; with linker putting zeroes in this page.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Issue 2&lt;/strong&gt;: yes RTT only uses RAM, but I specified an address in the linker script (well, an address for the section, and in RTT&amp;#39;s code (not shown in original post), forced each of my var into a specific section). And the linker does generate three flash sections that corresponds to the size of my 3 variables: this is my main problem; i was expecting that no flash data is generated because they only contains zeroes (since they are uninitialized static globals, hence should be zero-initalized).&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define FORCE_ADDR(name) __attribute__((section(name)))
static char FORCE_ADDR(&amp;quot;.rtt_ac_up&amp;quot;) _acUpBuffer  [BUFFER_SIZE_UP];
static char FORCE_ADDR(&amp;quot;.rtt_ac_down&amp;quot;) _acDownBuffer[BUFFER_SIZE_DOWN];
//
// Initialize SEGGER Real-time-Terminal control block (CB)
//
SEGGER_RTT_CB FORCE_ADDR(&amp;quot;.rtt_segger&amp;quot;) _SEGGER_RTT;

&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Here is the dump of the end of the&amp;nbsp;.hex (slightly different from the one shown in original post)&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;nrf52/bootloader (test) hexinfo.py build/nrf52832_xxaa_s132.hex
- file: &amp;#39;build/nrf52832_xxaa_s132.hex&amp;#39;
  entry: 0x70008179
  data:
  - { first: 0x00072000, last: 0x0007DC03, length: 0x0000BC04 }
  - { first: 0x0007ED28, last: 0x0007F127, length: 0x00000400 }
  - { first: 0x0007F528, last: 0x0007F56B, length: 0x00000044 }
  - { first: 0x0007F5A8, last: 0x0007F61F, length: 0x00000078 }
  - { first: 0x10001014, last: 0x1000101B, length: 0x00000008 }

nrf52/bootloader (test) hexxd build/nrf52832_xxaa_s132.hex 
00072000: 00 f0 00 20 79 81 07 00  a1 81 07 00 a3 81 07 00  .p. y...!...#...
[...]
0007dc00: 21 70 07 00                                       !p..
[...]
0007ed20:                          00 00 00 00 00 00 00 00          ........
0007ed30: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ed40: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ed50: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ed60: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ed70: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ed80: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ed90: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007eda0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007edb0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007edc0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007edd0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ede0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007edf0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ee00: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ee10: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ee20: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ee30: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ee40: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ee50: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ee60: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ee70: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ee80: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ee90: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007eea0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007eeb0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007eec0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007eed0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007eee0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007eef0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ef00: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ef10: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ef20: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ef30: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ef40: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ef50: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ef60: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ef70: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ef80: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007ef90: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007efa0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007efb0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007efc0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007efd0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007efe0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007eff0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f000: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f010: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f020: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f030: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f040: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f050: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f060: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f070: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f080: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f090: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f0a0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f0b0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f0c0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f0d0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f0e0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f0f0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f100: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f110: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f120: 00 00 00 00 00 00 00 00                           ........
0007f520:                          00 00 00 00 00 00 00 00          ........
0007f530: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f540: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f550: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f560: 00 00 00 00 00 00 00 00  00 00 00 00              ............
0007f5a0:                          00 00 00 00 00 00 00 00          ........
0007f5b0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f5c0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f5d0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f5e0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f5f0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f600: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
0007f610: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
10001010:             00 20 07 00  00 e0 07 00                  . ...`..
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;If i remove the FORCE_ADDR() from any of the RTT variable, the corresponding section disapears. Moreover the size exactly match variable sizes:&lt;/p&gt;
&lt;p&gt;- 0x400: _acUpBuffer (1024)&lt;/p&gt;
&lt;p&gt;- 0x044: _acDownBuffer (defined at 64+4 from RTT&amp;#39;s conf)&lt;/p&gt;
&lt;p&gt;- 0x78: _SEGGER_RTT (16 + 2*4 + 2 * 6 * 4 + 2 * 6 * 4)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I think that since I specified a section in the linker script, the linker does not &amp;#39;consider&amp;#39; those variables to be in .bss, hence will not be zero-erased by the loader code.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Issue 3&lt;/strong&gt;: thanks for the explanation; I think I will not try to play with UICR myself :).&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;My main problem is issue 2 and the flash generated content with zeroes.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Marc.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Specifying RAM address in .ld does generate spurious flash section</title><link>https://devzone.nordicsemi.com/thread/151214?ContentTypeID=1</link><pubDate>Tue, 02 Oct 2018 11:48:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e1793884-8af6-4c3b-930f-4bf010ff5ce6</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;HI marto,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Issue 1:&lt;/strong&gt; The MBR parameter page is required for bootloader and SoftDevice updates, it is used to store progress data when swapping old and new firmware images. The reason for it being one flash page is due to the fact that you only can erase entire pages on the nRF52 family ICs.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Issue 2:&lt;/strong&gt; I dont understand what you mean here: RTT only uses the RAM to buffer data that is to be sent over the SWD interface, not flash.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Issue 3:&lt;/strong&gt; Since the MBR looks up the bootloader start address from the UICR upon start up and jumps to this address on startup( given that a bootloader is present, i.e. the address is written to UICR). Hence, if the new bootloader is larger than the previous one, you need to modify the start address in UICR. However, the UICR registers cannot be modified without erasing them first, so if you get a power failure or similar during this operation( readback, modify the readback values, erase and writting to UICR) you risk bricking your device.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It is possible to update the UICR at runtime to allow the update of larger bootloader, but its not failsafe: See&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/18199/dfu---updating-from-legacy-sdk-v11-0-0-bootloader-to-secure-sdk-v12-x-0-bootloader"&gt;https://devzone.nordicsemi.com/f/nordic-q-a/18199/dfu---updating-from-legacy-sdk-v11-0-0-bootloader-to-secure-sdk-v12-x-0-bootloader&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Bjørn&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>