<?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>MBR set a Hardfault after bootloader sequence</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/43982/mbr-set-a-hardfault-after-bootloader-sequence</link><description>Hello, 
 I&amp;#39;m working on a project with thread network and I&amp;#39;m implementing a bootloader from the thread dfu secure bootloader example. 
 I had use this example with sucess but now, I change the memory segment for my custom application and the bootloader</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 01 Mar 2019 13:25:20 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/43982/mbr-set-a-hardfault-after-bootloader-sequence" /><item><title>RE: MBR set a Hardfault after bootloader sequence</title><link>https://devzone.nordicsemi.com/thread/173713?ContentTypeID=1</link><pubDate>Fri, 01 Mar 2019 13:25:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2bde8b5d-555f-466f-908f-212bfdfb72ce</guid><dc:creator>Valentin</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve found the problem and this was very hidden... But I don&amp;#39;t understand what the difference !&lt;br /&gt;I rebuilt and test the thread secure dfu example and in fact, the &amp;quot;Debug&amp;quot; configuration doesn&amp;#39;t work because of gcc_optimization_level = None !&lt;/p&gt;
&lt;p&gt;I rebuilt with my custom bootloader with gcc_optimization_level = &amp;quot;optimize for size&amp;quot; and now it&amp;#39;s work.&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t understand why the jump function doesn&amp;#39;t work with no optimization but it&amp;#39;s the solution. If someone can explain, i&amp;#39;ll be very gratefull &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t test the other optimization level.&lt;/p&gt;
&lt;p&gt;Valentin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MBR set a Hardfault after bootloader sequence</title><link>https://devzone.nordicsemi.com/thread/173545?ContentTypeID=1</link><pubDate>Thu, 28 Feb 2019 16:15:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4f04aede-429c-4bf9-8f6f-4d2f75da512b</guid><dc:creator>Valentin</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve made some progress and I know why there is Hardfault but I don&amp;#39;t know why this is handle...&lt;/p&gt;
&lt;p&gt;I flash the MBR, bootloader with Segger studio and my application with nrfutil. I run the bootloader code step by step and I can going to app_start function in nrf_bootloader_app_start_final.c&lt;br /&gt;This is a break in the code before the hardfault :&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/pastedimage1551369952624v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;You can see in the Watch 1 that the new_msp = 0x20040000 - new_lr = 0xffffffff - reset_handler = 0x00001361.&lt;/p&gt;
&lt;p&gt;For me, all of these variables are good but next, the code jump to the address 0x978 :&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/pastedimage1551370057438v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;and so, a hardfault is&amp;nbsp;fire at the address 0x000013C2...&lt;/p&gt;
&lt;p&gt;I told you a hardfault in MBR code but it&amp;#39;s because of the bootloader who jump to MBR&lt;/p&gt;
&lt;p&gt;Before, I execute the code with thread secure dfu example, I get the same value for new_msp and reset handler and the jump to application was correct but with my custom code, the jump is not working...&lt;br /&gt;I don&amp;#39;t know why... I begin the project with new blank project so I made all include and choose all parameter in segger, is there&amp;nbsp;special setting for bootloader application in segger ?&lt;br /&gt;Do you know why this happen ?&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Valentin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MBR set a Hardfault after bootloader sequence</title><link>https://devzone.nordicsemi.com/thread/173403?ContentTypeID=1</link><pubDate>Thu, 28 Feb 2019 09:06:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:92b69635-ee23-49ad-a6f7-e75d65848a60</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t see anything wrong in the flash placement files. So, we need to forward the hardfault exception to the application. Please see Vidar&amp;#39;s comments in &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/41376/debug-mode-is-not-working-in-segger-embedded-studio/"&gt;this post&lt;/a&gt; on how to do that.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MBR set a Hardfault after bootloader sequence</title><link>https://devzone.nordicsemi.com/thread/172867?ContentTypeID=1</link><pubDate>Mon, 25 Feb 2019 17:58:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0e3c4322-db0b-455c-935a-4e35f9970649</guid><dc:creator>Valentin</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I already update the flash_placement but maybe not correctly... This is my flash_placement for the bootloader :&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;&amp;lt;!DOCTYPE Linker_Placement_File&amp;gt;
&amp;lt;Root name=&amp;quot;Flash Section Placement&amp;quot;&amp;gt;
  &amp;lt;MemorySegment name=&amp;quot;FLASH&amp;quot; start=&amp;quot;$(FLASH_PH_START)&amp;quot; size=&amp;quot;$(FLASH_PH_SIZE)&amp;quot;&amp;gt;
    &amp;lt;ProgramSection load=&amp;quot;no&amp;quot; name=&amp;quot;.reserved_flash&amp;quot; start=&amp;quot;$(FLASH_PH_START)&amp;quot; size=&amp;quot;$(FLASH_START)-$(FLASH_PH_START)&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;0x100&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.vectors&amp;quot; start=&amp;quot;$(FLASH_START)&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.init&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.init_rodata&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.text&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.crypto_data&amp;quot; inputsections=&amp;quot;*(SORT(.crypto_data*))&amp;quot; address_symbol=&amp;quot;__start_crypto_data&amp;quot; end_symbol=&amp;quot;__stop_crypto_data&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.nrf_queue&amp;quot; inputsections=&amp;quot;*(.nrf_queue*)&amp;quot; address_symbol=&amp;quot;__start_nrf_queue&amp;quot; end_symbol=&amp;quot;__stop_nrf_queue&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.dfu_trans&amp;quot; inputsections=&amp;quot;*(SORT(.dfu_trans*))&amp;quot; address_symbol=&amp;quot;__start_dfu_trans&amp;quot; end_symbol=&amp;quot;__stop_dfu_trans&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.log_backends&amp;quot; inputsections=&amp;quot;*(SORT(.log_backends*))&amp;quot; address_symbol=&amp;quot;__start_log_backends&amp;quot; end_symbol=&amp;quot;__stop_log_backends&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.log_const_data&amp;quot; inputsections=&amp;quot;*(SORT(.log_const_data*))&amp;quot; address_symbol=&amp;quot;__start_log_const_data&amp;quot; end_symbol=&amp;quot;__stop_log_const_data&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.nrf_balloc&amp;quot; inputsections=&amp;quot;*(.nrf_balloc*)&amp;quot; address_symbol=&amp;quot;__start_nrf_balloc&amp;quot; end_symbol=&amp;quot;__stop_nrf_balloc&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.nrf_sections&amp;quot; address_symbol=&amp;quot;__start_nrf_sections&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.fs_data&amp;quot;  inputsections=&amp;quot;*(.fs_data*)&amp;quot; runin=&amp;quot;.fs_data_run&amp;quot;/&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.log_dynamic_data&amp;quot;  inputsections=&amp;quot;*(SORT(.log_dynamic_data*))&amp;quot; runin=&amp;quot;.log_dynamic_data_run&amp;quot;/&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.log_filter_data&amp;quot;  inputsections=&amp;quot;*(SORT(.log_filter_data*))&amp;quot; runin=&amp;quot;.log_filter_data_run&amp;quot;/&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.dtors&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.ctors&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.rodata&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.ARM.exidx&amp;quot; address_symbol=&amp;quot;__exidx_start&amp;quot; end_symbol=&amp;quot;__exidx_end&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; runin=&amp;quot;.fast_run&amp;quot; name=&amp;quot;.fast&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; runin=&amp;quot;.data_run&amp;quot; name=&amp;quot;.data&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; runin=&amp;quot;.tdata_run&amp;quot; name=&amp;quot;.tdata&amp;quot; /&amp;gt;
  &amp;lt;/MemorySegment&amp;gt;
  &amp;lt;MemorySegment name=&amp;quot;RAM&amp;quot; start=&amp;quot;$(RAM_PH_START)&amp;quot; size=&amp;quot;$(RAM_PH_SIZE)&amp;quot;&amp;gt;
    &amp;lt;ProgramSection load=&amp;quot;no&amp;quot; name=&amp;quot;.reserved_ram&amp;quot; start=&amp;quot;$(RAM_PH_START)&amp;quot; size=&amp;quot;$(RAM_START)-$(RAM_PH_START)&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;0x100&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.vectors_ram&amp;quot; start=&amp;quot;$(RAM_START)&amp;quot; address_symbol=&amp;quot;__app_ram_start__&amp;quot;/&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.nrf_sections_run&amp;quot; address_symbol=&amp;quot;__start_nrf_sections_run&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.fs_data_run&amp;quot; address_symbol=&amp;quot;__start_fs_data&amp;quot; end_symbol=&amp;quot;__stop_fs_data&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.log_dynamic_data_run&amp;quot; address_symbol=&amp;quot;__start_log_dynamic_data&amp;quot; end_symbol=&amp;quot;__stop_log_dynamic_data&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.log_filter_data_run&amp;quot; address_symbol=&amp;quot;__start_log_filter_data&amp;quot; end_symbol=&amp;quot;__stop_log_filter_data&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.nrf_sections_run_end&amp;quot; address_symbol=&amp;quot;__end_nrf_sections_run&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.fast_run&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.data_run&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.tdata_run&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.bss&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.tbss&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.non_init&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; size=&amp;quot;__HEAPSIZE__&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.heap&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;8&amp;quot; size=&amp;quot;__STACKSIZE__&amp;quot; load=&amp;quot;No&amp;quot; place_from_segment_end=&amp;quot;Yes&amp;quot; name=&amp;quot;.stack&amp;quot;  address_symbol=&amp;quot;__StackLimit&amp;quot; end_symbol=&amp;quot;__StackTop&amp;quot;/&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;8&amp;quot; size=&amp;quot;__STACKSIZE_PROCESS__&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.stack_process&amp;quot; /&amp;gt;
  &amp;lt;/MemorySegment&amp;gt;
  &amp;lt;MemorySegment name=&amp;quot;bootloader_settings_page&amp;quot; start=&amp;quot;0x000FF000&amp;quot; size=&amp;quot;0x1000&amp;quot;&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.bootloader_settings_page&amp;quot; address_symbol=&amp;quot;__start_bootloader_settings_page&amp;quot; end_symbol=&amp;quot;__stop_bootloader_settings_page&amp;quot; start = &amp;quot;0x000FF000&amp;quot; size=&amp;quot;0x1000&amp;quot; /&amp;gt;
  &amp;lt;/MemorySegment&amp;gt;
  &amp;lt;MemorySegment name=&amp;quot;mbr_params_page&amp;quot; start=&amp;quot;0x000FE000&amp;quot; size=&amp;quot;0x1000&amp;quot;&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.mbr_params_page&amp;quot; address_symbol=&amp;quot;__start_mbr_params_page&amp;quot; end_symbol=&amp;quot;__stop_mbr_params_page&amp;quot; start = &amp;quot;0x000FE000&amp;quot; size=&amp;quot;0x1000&amp;quot; /&amp;gt;
  &amp;lt;/MemorySegment&amp;gt;
  &amp;lt;MemorySegment name=&amp;quot;uicr_bootloader_start_address&amp;quot; start=&amp;quot;0x10001014&amp;quot; size=&amp;quot;0x4&amp;quot;&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.uicr_bootloader_start_address&amp;quot; address_symbol=&amp;quot;__start_uicr_bootloader_start_address&amp;quot; end_symbol=&amp;quot;__stop_uicr_bootloader_start_address&amp;quot; start = &amp;quot;0x10001014&amp;quot; size=&amp;quot;0x4&amp;quot; /&amp;gt;
  &amp;lt;/MemorySegment&amp;gt;
  &amp;lt;MemorySegment name=&amp;quot;uicr_mbr_params_page&amp;quot; start=&amp;quot;0x10001018&amp;quot; size=&amp;quot;0x4&amp;quot;&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.uicr_mbr_params_page&amp;quot; address_symbol=&amp;quot;__start_uicr_mbr_params_page&amp;quot; end_symbol=&amp;quot;__stop_uicr_mbr_params_page&amp;quot; start = &amp;quot;0x10001018&amp;quot; size=&amp;quot;0x4&amp;quot; /&amp;gt;
  &amp;lt;/MemorySegment&amp;gt;
&amp;lt;/Root&amp;gt;
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;And this is my flash_placement for the application:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;!DOCTYPE Linker_Placement_File&amp;gt;
&amp;lt;Root name=&amp;quot;Flash Section Placement&amp;quot;&amp;gt;
  &amp;lt;MemorySegment name=&amp;quot;FLASH&amp;quot; start=&amp;quot;$(FLASH_PH_START)&amp;quot; size=&amp;quot;$(FLASH_PH_SIZE)&amp;quot;&amp;gt;
    &amp;lt;ProgramSection load=&amp;quot;no&amp;quot; name=&amp;quot;.reserved_flash&amp;quot; start=&amp;quot;$(FLASH_PH_START)&amp;quot; size=&amp;quot;$(FLASH_START)-$(FLASH_PH_START)&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;0x100&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.vectors&amp;quot; start=&amp;quot;$(FLASH_START)&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.init&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.init_rodata&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.text&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.nrf_queue&amp;quot; inputsections=&amp;quot;*(.nrf_queue*)&amp;quot; address_symbol=&amp;quot;__start_nrf_queue&amp;quot; end_symbol=&amp;quot;__stop_nrf_queue&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.nrf_balloc&amp;quot; inputsections=&amp;quot;*(.nrf_balloc*)&amp;quot; address_symbol=&amp;quot;__start_nrf_balloc&amp;quot; end_symbol=&amp;quot;__stop_nrf_balloc&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.crypto_data&amp;quot; inputsections=&amp;quot;*(SORT(.crypto_data*))&amp;quot; address_symbol=&amp;quot;__start_crypto_data&amp;quot; end_symbol=&amp;quot;__stop_crypto_data&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.pwr_mgmt_data&amp;quot; inputsections=&amp;quot;*(SORT(.pwr_mgmt_data*))&amp;quot; address_symbol=&amp;quot;__start_pwr_mgmt_data&amp;quot; end_symbol=&amp;quot;__stop_pwr_mgmt_data&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.log_const_data&amp;quot; inputsections=&amp;quot;*(SORT(.log_const_data*))&amp;quot; address_symbol=&amp;quot;__start_log_const_data&amp;quot; end_symbol=&amp;quot;__stop_log_const_data&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.log_backends&amp;quot; inputsections=&amp;quot;*(SORT(.log_backends*))&amp;quot; address_symbol=&amp;quot;__start_log_backends&amp;quot; end_symbol=&amp;quot;__stop_log_backends&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.nrf_sections&amp;quot; address_symbol=&amp;quot;__start_nrf_sections&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.fs_data&amp;quot;  inputsections=&amp;quot;*(.fs_data*)&amp;quot; runin=&amp;quot;.fs_data_run&amp;quot;/&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.log_dynamic_data&amp;quot;  inputsections=&amp;quot;*(SORT(.log_dynamic_data*))&amp;quot; runin=&amp;quot;.log_dynamic_data_run&amp;quot;/&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.log_filter_data&amp;quot;  inputsections=&amp;quot;*(SORT(.log_filter_data*))&amp;quot; runin=&amp;quot;.log_filter_data_run&amp;quot;/&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.dtors&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.ctors&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.rodata&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.ARM.exidx&amp;quot; address_symbol=&amp;quot;__exidx_start&amp;quot; end_symbol=&amp;quot;__exidx_end&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; runin=&amp;quot;.fast_run&amp;quot; name=&amp;quot;.fast&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; runin=&amp;quot;.data_run&amp;quot; name=&amp;quot;.data&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;Yes&amp;quot; runin=&amp;quot;.tdata_run&amp;quot; name=&amp;quot;.tdata&amp;quot; /&amp;gt;
  &amp;lt;/MemorySegment&amp;gt;
  &amp;lt;MemorySegment name=&amp;quot;RAM&amp;quot; start=&amp;quot;$(RAM_PH_START)&amp;quot; size=&amp;quot;$(RAM_PH_SIZE)&amp;quot;&amp;gt;
    &amp;lt;ProgramSection load=&amp;quot;no&amp;quot; name=&amp;quot;.reserved_ram&amp;quot; start=&amp;quot;$(RAM_PH_START)&amp;quot; size=&amp;quot;$(RAM_START)-$(RAM_PH_START)&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;0x100&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.vectors_ram&amp;quot; start=&amp;quot;$(RAM_START)&amp;quot; address_symbol=&amp;quot;__app_ram_start__&amp;quot;/&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.nrf_sections_run&amp;quot; address_symbol=&amp;quot;__start_nrf_sections_run&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.fs_data_run&amp;quot; address_symbol=&amp;quot;__start_fs_data&amp;quot; end_symbol=&amp;quot;__stop_fs_data&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.log_dynamic_data_run&amp;quot; address_symbol=&amp;quot;__start_log_dynamic_data&amp;quot; end_symbol=&amp;quot;__stop_log_dynamic_data&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.log_filter_data_run&amp;quot; address_symbol=&amp;quot;__start_log_filter_data&amp;quot; end_symbol=&amp;quot;__stop_log_filter_data&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.nrf_sections_run_end&amp;quot; address_symbol=&amp;quot;__end_nrf_sections_run&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.fast_run&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.data_run&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.tdata_run&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.bss&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.tbss&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.non_init&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; size=&amp;quot;__HEAPSIZE__&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.heap&amp;quot; /&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;8&amp;quot; size=&amp;quot;__STACKSIZE__&amp;quot; load=&amp;quot;No&amp;quot; place_from_segment_end=&amp;quot;Yes&amp;quot; name=&amp;quot;.stack&amp;quot;  address_symbol=&amp;quot;__StackLimit&amp;quot; end_symbol=&amp;quot;__StackTop&amp;quot;/&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;8&amp;quot; size=&amp;quot;__STACKSIZE_PROCESS__&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.stack_process&amp;quot; /&amp;gt;
  &amp;lt;/MemorySegment&amp;gt;
  &amp;lt;MemorySegment name=&amp;quot;bootloader_settings_page&amp;quot; start=&amp;quot;0x000FF000&amp;quot; size=&amp;quot;0x1000&amp;quot;&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.bootloader_settings_page&amp;quot; address_symbol=&amp;quot;__start_bootloader_settings_page&amp;quot; end_symbol=&amp;quot;__stop_bootloader_settings_page&amp;quot; start = &amp;quot;0x000FF000&amp;quot; size=&amp;quot;0x1000&amp;quot; /&amp;gt;
  &amp;lt;/MemorySegment&amp;gt;
  &amp;lt;MemorySegment name=&amp;quot;mbr_params_page&amp;quot; start=&amp;quot;0x000FE000&amp;quot; size=&amp;quot;0x1000&amp;quot;&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.mbr_params_page&amp;quot; address_symbol=&amp;quot;__start_mbr_params_page&amp;quot; end_symbol=&amp;quot;__stop_mbr_params_page&amp;quot; start = &amp;quot;0x000FE000&amp;quot; size=&amp;quot;0x1000&amp;quot; /&amp;gt;
  &amp;lt;/MemorySegment&amp;gt;
  &amp;lt;MemorySegment name=&amp;quot;ot_flash_data&amp;quot; start=&amp;quot;0x000f2000&amp;quot; size=&amp;quot;0x4000&amp;quot;&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.ot_flash_data&amp;quot; address_symbol=&amp;quot;__start_ot_flash_data&amp;quot; end_symbol=&amp;quot;__stop_ot_flash_data&amp;quot; start = &amp;quot;0x000f2000&amp;quot; size=&amp;quot;0x4000&amp;quot; /&amp;gt;
  &amp;lt;/MemorySegment&amp;gt;
  &amp;lt;MemorySegment name=&amp;quot;uicr_bootloader_start_address&amp;quot; start=&amp;quot;0x10001014&amp;quot; size=&amp;quot;0x4&amp;quot;&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.uicr_bootloader_start_address&amp;quot; address_symbol=&amp;quot;__start_uicr_bootloader_start_address&amp;quot; end_symbol=&amp;quot;__stop_uicr_bootloader_start_address&amp;quot; start = &amp;quot;0x10001014&amp;quot; size=&amp;quot;0x4&amp;quot; /&amp;gt;
  &amp;lt;/MemorySegment&amp;gt;
  &amp;lt;MemorySegment name=&amp;quot;uicr_mbr_params_page&amp;quot; start=&amp;quot;0x10001018&amp;quot; size=&amp;quot;0x4&amp;quot;&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;Yes&amp;quot; name=&amp;quot;.uicr_mbr_params_page&amp;quot; address_symbol=&amp;quot;__start_uicr_mbr_params_page&amp;quot; end_symbol=&amp;quot;__stop_uicr_mbr_params_page&amp;quot; start = &amp;quot;0x10001018&amp;quot; size=&amp;quot;0x4&amp;quot; /&amp;gt;
  &amp;lt;/MemorySegment&amp;gt;
&amp;lt;/Root&amp;gt;
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Do you see anything in these files ?&lt;/p&gt;
&lt;p&gt;Thank you for the response about the RAM placement ;)&lt;/p&gt;
&lt;p&gt;Valentin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MBR set a Hardfault after bootloader sequence</title><link>https://devzone.nordicsemi.com/thread/172733?ContentTypeID=1</link><pubDate>Mon, 25 Feb 2019 12:07:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3780e48d-080e-4a35-bbbd-4564643e5ff3</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;If you have moved the&lt;em&gt; ot_fash_data&lt;/em&gt;, then you might need to update the&amp;nbsp;flash_placement.xml for the client.&lt;/p&gt;
&lt;p&gt;Snippet from the client flash_placement.xml:&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;  &amp;lt;MemorySegment name=&amp;quot;ot_flash_data&amp;quot; start=&amp;quot;0x000f4000&amp;quot; size=&amp;quot;0x4000&amp;quot;&amp;gt;
    &amp;lt;ProgramSection alignment=&amp;quot;4&amp;quot; keep=&amp;quot;Yes&amp;quot; load=&amp;quot;No&amp;quot; name=&amp;quot;.ot_flash_data&amp;quot; address_symbol=&amp;quot;__start_ot_flash_data&amp;quot; end_symbol=&amp;quot;__stop_ot_flash_data&amp;quot; start = &amp;quot;0x000f4000&amp;quot; size=&amp;quot;0x4000&amp;quot; /&amp;gt;
  &amp;lt;/MemorySegment&amp;gt;&lt;/pre&gt;&lt;/p&gt;
[quote userid="73170" url="~/f/nordic-q-a/43982/mbr-set-a-hardfault-after-bootloader-sequence"]Just for my information, does anyone known why the RAM start to&amp;nbsp;&lt;span&gt;0x20000008 in application ?&lt;/span&gt;[/quote]
&lt;p&gt;The MBR uses the RAM from&amp;nbsp;&lt;span&gt;0x20000000 to&amp;nbsp;0x20000008.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>