<?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 update problem</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/61896/bootloader-update-problem</link><description>I&amp;#39;m having an issue programming the bootloader using .hex file. I have &amp;quot;Erase all&amp;quot; by nrf52832 and was trying to debug my bootloader the code didn&amp;#39;t stop at the beginning of the main. By breaking the code I was it was running in the Softdevice. Finally</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 02 Jun 2020 13:02:01 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/61896/bootloader-update-problem" /><item><title>RE: Bootloader update problem</title><link>https://devzone.nordicsemi.com/thread/252755?ContentTypeID=1</link><pubDate>Tue, 02 Jun 2020 13:02:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:09c655d7-de2d-4cd0-a73e-90163eb8f6b2</guid><dc:creator>Frederic</dc:creator><description>&lt;p&gt;In Segger studio, in the project option, Code/Build section, the memory segment must have the&amp;nbsp;uicr_bootloader_start_address and the uicr_mbr_params_page&amp;nbsp;segment define WITH the RX parameter. I have added it manualy but forgot the RX.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;FLASH RX 0x0 0x80000;RAM RWX 0x20000000 0x10000;mbr_params_page RX 0x0007E000 0x1000;bootloader_settings_page RX 0x0007F000 0x1000&amp;quot;&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader update problem</title><link>https://devzone.nordicsemi.com/thread/252597?ContentTypeID=1</link><pubDate>Mon, 01 Jun 2020 19:31:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:30ebfa72-a35b-4c4d-bd57-bfe9fd688f9e</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;You need to change the objcopy command. It processes only .text section by default IIRC.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader update problem</title><link>https://devzone.nordicsemi.com/thread/252575?ContentTypeID=1</link><pubDate>Mon, 01 Jun 2020 12:31:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4dc8a215-bd6a-4c28-947a-0ee2d213ab3a</guid><dc:creator>Frederic</dc:creator><description>&lt;p&gt;Is this what you are talking about?&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;&amp;quot;C:\Program Files\SEGGER\SEGGER Embedded Studio for ARM 4.50\bin\mkld&amp;quot; -memory-map-segments &amp;quot;FLASH RX 0x0 0x80000;RAM RWX 0x20000000 0x10000;mbr_params_page RX 0x0007E000 0x1000;bootloader_settings_page RX 0x0007F000 0x1000; uicr_bootloader_start_address 0xFF8 0x4; uicr_mbr_params_page 0xFFC 0x4;&amp;quot; -section-placement-file d:/config/flash_placement_bootloader.xml -check-segment-overflow -symbols __STACKSIZE__=2048;__STACKSIZE_PROCESS__=0;__HEAPSIZE__=0 -section-placement-macros FLASH_PH_START=0x0;FLASH_PH_SIZE=0x80000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x10000;FLASH_START=0x78000;FLASH_SIZE=0x6000;RAM_START=0x20000008;RAM_SIZE=0xfff8 &amp;quot;d:/Output/Bootloader Release/Obj/Bootloader.ld&amp;quot;
&amp;quot;C:\Program Files\SEGGER\SEGGER Embedded Studio for ARM 4.50\gcc\arm-none-eabi\bin\ld&amp;quot; -X --omagic -eReset_Handler --defsym=__vfprintf=__vfprintf_long --defsym=__vfscanf=__vfscanf_long -EL --gc-sections &amp;quot;-Td:/Output/Bootloader Release/Obj/Bootloader.ld&amp;quot; -Map Output/Release/Exe/Bootloader.map -u_vectors -o Output/Release/Exe/Bootloader.elf --emit-relocs --start-group &amp;quot;@d:/Output/Bootloader Release/Obj/Bootloader.ind&amp;quot; --end-group
&amp;quot;C:\Program Files\SEGGER\SEGGER Embedded Studio for ARM 4.50\gcc\arm-none-eabi\bin\objcopy&amp;quot; Output/Release/Exe/Bootloader.elf d:/Output/Release/Exe/Bootloader.hex -Oihex&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve just added the&amp;nbsp;uicr_bootloader_start_address 0xFF8 0x4; uicr_mbr_params_page 0xFFC 0x4;&amp;quot; in the&amp;nbsp;-memory-map-segments parameter but it doesn&amp;#39;t change anything.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m using Segger Embedded Studio.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader update problem</title><link>https://devzone.nordicsemi.com/thread/252211?ContentTypeID=1</link><pubDate>Thu, 28 May 2020 13:31:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b2443be7-583e-4c46-881f-73437dfb9dc0</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;Check your hex file generation command. It may not include the extra uicr_mbr_params_page section.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader update problem</title><link>https://devzone.nordicsemi.com/thread/252207?ContentTypeID=1</link><pubDate>Thu, 28 May 2020 13:27:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1afbe18e-f350-40af-8c8c-a8ea93db4cbe</guid><dc:creator>Frederic</dc:creator><description>&lt;p&gt;I&amp;#39;m comparing the .hex generated by the open_bootloader_usb_mbr_pca10056 example and my project and in the example .hex file I see the following 2 lines but not in mine:&lt;/p&gt;
&lt;p&gt;:040FF80000000E00E7&lt;br /&gt;:040FFC0000E00F0002&lt;/p&gt;
&lt;p&gt;I understand that I won&amp;#39;t have the same exact lines but lines that will begin with&amp;nbsp;&lt;span&gt;:040FF8 and&amp;nbsp;:040FFC.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I have the definition of m_uicr_bootloader_start_address in my code as follow:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;pre class="ui-code" data-mode="text"&gt;volatile uint32_t m_uicr_bootloader_start_address __attribute__ ((section(&amp;quot;.uicr_bootloader_start_address&amp;quot;)))
= BOOTLOADER_START_ADDR;

#define BOOTLOADER_START_ADDR (CODE_START)

#define CODE_START ((uint32_t)&amp;amp;_vectors)

&lt;/pre&gt;&lt;/span&gt;&lt;span&gt;In the linker script (bootloader.ld) the&amp;nbsp;uicr_bootloader_start_address section is define in the MEMORY definition but not placed.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;MEMORY
{
&amp;#160; &amp;#160; &amp;#160; &amp;#160; UNPLACED_SECTIONS (wx) : ORIGIN = 0x100000000, LENGTH = 0
&amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160;uicr_mbr_params_page (wx) : ORIGIN = 0x00000ffc, LENGTH = 0x00000004
&amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160;uicr_bootloader_start_address (wx) : ORIGIN = 0x00000ff8, LENGTH = 0x00000004
&amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160;bootloader_settings_page (wx) : ORIGIN = 0x0007f000, LENGTH = 0x00001000
&amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160;mbr_params_page (wx) : ORIGIN = 0x0007e000, LENGTH = 0x00001000
&amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160;RAM (wx) : ORIGIN = 0x20000000, LENGTH = 0x00010000
&amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160;FLASH (wx) : ORIGIN = 0x00000000, LENGTH = 0x00080000
}

&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;It&amp;#39;s the same for the&amp;nbsp;uicr_mbr_params_page section.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Any idea why the definition is&amp;nbsp;remove? Optimization Level at None doesn&amp;#39;t work.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader update problem</title><link>https://devzone.nordicsemi.com/thread/252151?ContentTypeID=1</link><pubDate>Thu, 28 May 2020 11:35:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d6bb6297-ad99-4eef-b8ef-bcbdef004c6c</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote user=""]Also&amp;nbsp;is there a way to have the&amp;nbsp;NRF_UICR-&amp;gt;NRFFW[0] and&amp;nbsp;NRF_UICR-&amp;gt;NRFFW[1] values included in the .hex file without modifying it manually?[/quote]
&lt;p&gt;Yes and no. SDK 15.3 no longer uses the UICR but use the end of the MBR page (page 0) to store the bootloader settings and MBR params addresses. This is included when you build the bootloader project, so if you inspect the bootloader hex file (for instance by just opening it in nRF Connect Programmer, you will see that it includes two words at the end of page 0. Because of this, you must take care when programming the bootloader and SoftDevice initially, so that you don&amp;#39;t accidentally erase either the MBR when writing the bootloader, or the other way around (erasing BL settings/MBR params address), which you will do if you erase all pages that you are writing to. This is a common problem with SDK 15.3.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader update problem</title><link>https://devzone.nordicsemi.com/thread/252054?ContentTypeID=1</link><pubDate>Wed, 27 May 2020 21:57:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:62dba727-271a-4501-96b7-80ccd69f6ebd</guid><dc:creator>Frederic</dc:creator><description>&lt;p&gt;I&amp;#39;m using SDK 15.3&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader update problem</title><link>https://devzone.nordicsemi.com/thread/252048?ContentTypeID=1</link><pubDate>Wed, 27 May 2020 20:46:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5c58bc6b-0b5f-4402-a5c6-cd7e074b2b06</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;Bootloader and MBR param page adresses have changed in recent SDKs - which version do you use?&lt;/p&gt;
&lt;p&gt;Newer SDK use a location within the MBR space and use UICR as backup. Older SDKs use UICR locations exclusively.&lt;/p&gt;
&lt;p&gt;And yes, the bootloader cannot be updated via DFU without a MBR param page specified.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>