<?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>Dual Bank Bootloader Over ESB</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/34529/dual-bank-bootloader-over-esb</link><description>I have two nrf52832 boards, both being developed with SDK v11 and the s132 soft device. 
 Board one is given commands over UART to communicate over ESB with board two. Board two also has serial communication with an FPGA that can be reprogrammed sucsessfully</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 27 Jul 2018 14:16:36 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/34529/dual-bank-bootloader-over-esb" /><item><title>RE: Dual Bank Bootloader Over ESB</title><link>https://devzone.nordicsemi.com/thread/141725?ContentTypeID=1</link><pubDate>Fri, 27 Jul 2018 14:16:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:312cf6de-3f78-4993-8b24-80af304c095e</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;If you have the code to read the UICR and don&amp;#39;t try to write to it on every boot then it&amp;#39;s fine. We also do that with some of our code to enable errata fix or configure Reset pin, NFC pins.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;But I don&amp;#39;t think you can write to flash by just assigning the value to the pointer. Please look for this line in system_nrf52.c to see how to do it&lt;/p&gt;
&lt;p&gt;#if defined (CONFIG_NFCT_PINS_AS_GPIOS)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&amp;#39;m not sure why you don&amp;#39;t want to edit the hex file. The intel hex definition can be found &lt;a href="https://en.wikipedia.org/wiki/Intel_HEX"&gt;here&lt;/a&gt;. You just need to edit the hex to split it into two.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Another option if you don&amp;#39;t want to edit the hex is to flash the hex to a chip, then try to read it out using nrfjprog, you&amp;nbsp;can read the application part and the UICR part separately to have 2 hex files. Then you convert the hexes to binary files.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Dual Bank Bootloader Over ESB</title><link>https://devzone.nordicsemi.com/thread/141536?ContentTypeID=1</link><pubDate>Thu, 26 Jul 2018 13:29:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f7f754e6-8bf8-40de-b81a-f2dfead1503b</guid><dc:creator>TrebleStick</dc:creator><description>&lt;p&gt;I&amp;#39;m currently trying to change the linker file to write the UCIR data right after my application then on start up have the app write the UCIR values to the correct address, is this a good approach? I&amp;#39;m thinking that this would streamline the updating process a bit more. My linker file and the start up code currently looks like this.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;pre class="ui-code" data-mode="text"&gt;/* Linker script to configure memory regions. */

SEARCH_DIR(.)
GROUP(-lgcc -lc -lnosys)

MEMORY
{
  FLASH (rx) : ORIGIN = 0x00000, LENGTH = 0x80000
  UICR (rx) : ORIGIN = 0x10001000, LENGTH = 0x0FFFF000
  RAM (rwx) :  ORIGIN = 0x20000000, LENGTH = 0x10000
}

SECTIONS
{
  .app 0x000000000 : { *(.app) _eapp = . ;}
  .muicr 0x1000120C :
  AT( ADDR (.app) + SIZEOF (.app) )
  { _uicr = . ;  *(.uicr);  _eucir = . ;  }
  .fs_data :
  {
    PROVIDE(__start_fs_data = .);
    KEEP(*(.fs_data))
    PROVIDE(__stop_fs_data = .);
  } &amp;gt; RAM
} INSERT AFTER .data;

INCLUDE &amp;quot;nrf5x_common.ld&amp;quot;
&lt;/pre&gt;&lt;pre class="ui-code" data-mode="text"&gt;  //save the UCIR address manully to reduce the size of the bin fin for each applcation
    extern char _eapp, _ucir, _eucir; //beginning of UCIR LMA, beginning of UCIR VMA, end of UCIR VMA
                // __start_fs_data, //data start address
                // __stop_fs_data;  //data end address
    //define pointer to the start of both the load and virtual memory addresses fo the UCIR data
    char *src = &amp;amp;_eapp;
    char *dst = &amp;amp;_ucir;

    //write the UCIR data across on boot, this should be indpendant of the start address of the application
    while(dst &amp;lt; &amp;amp;_eucir){
      *dst = *src;
      *src = 0xFF; //write flash mask to the temp storage address
      dst++;
      src++;
    }&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Dual Bank Bootloader Over ESB</title><link>https://devzone.nordicsemi.com/thread/140940?ContentTypeID=1</link><pubDate>Mon, 23 Jul 2018 08:49:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:00f2e53e-41b2-4532-ba67-9be60f2e0995</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Jack,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I guess in your code you have some data to be written to UICR (0x10001209) ? If you do , would suggest you to split the hex file, so you have separate hex for the main application and separate hex for the UICR. Then you convert them to binary.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you keep them in one hex file, gcc has no other way of generating binary other than making that 256MB bin file (binary file has no address, to get to the UICR it has to add the 0xFFFFFFFF)&lt;/p&gt;
&lt;p&gt;In your DFU application, you then receive 2 files one to be written as application and one to be written to UICR&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Dual Bank Bootloader Over ESB</title><link>https://devzone.nordicsemi.com/thread/140864?ContentTypeID=1</link><pubDate>Fri, 20 Jul 2018 15:06:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bfc7571f-e326-423d-b706-a01c9c9df5ee</guid><dc:creator>TrebleStick</dc:creator><description>&lt;p&gt;Hello again, sorry for the late response I&amp;#39;ve been working on this among other things. So currently I&amp;#39;ve managed to get the boot commands to work over ESB as far as validating an image and booting from an address, in this case still just 0x00000000.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have code which will sucsessfully send a binary file and write it into a memory location of my choosing however the binary file produced by GCC is far too large.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;From what i understand and from looking at the information on the file in a binary/hex file interpreter, all of the information past&amp;nbsp; 0x00004510 are just zeros. untill you hit the final address in my currently 256MB file 0x10001209, which simply contains 0xFFFFFFFF, which i assume is just storing the flash mask.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;My question now is, can i chop my binary file down to 0x00004510 and run it?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Again, thanks in advance&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Jack&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Dual Bank Bootloader Over ESB</title><link>https://devzone.nordicsemi.com/thread/134862?ContentTypeID=1</link><pubDate>Wed, 06 Jun 2018 08:50:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:de7e941d-45a7-4aa0-b304-91bb9159c775</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;You can remove the softdevice if you don&amp;#39;t plan to use BLE. But you still need the MBR to do the image replacing. What you are planing to do require good understanding on how the MBR works and assessment if a bootloader needed or not. I would suggest you to get familiar with how our bootloader work, how we replace application image and also replace the bootloader itself. How the bootloader is executed and the vector table is forwarded by the MBR.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The start point of your application is defined in the .ld file, as in the blinky example :&amp;nbsp; FLASH (rx) : ORIGIN = 0x0, LENGTH = 0x80000 , start at address 0x00.&lt;/p&gt;
&lt;p&gt;The size of your application shows by the&amp;nbsp;compiler after you build it. Or you can find the size using .map file, or convert to binary file.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Dual Bank Bootloader Over ESB</title><link>https://devzone.nordicsemi.com/thread/134601?ContentTypeID=1</link><pubDate>Mon, 04 Jun 2018 15:04:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ab29a059-d8b2-4183-85a9-18b4de9c70ad</guid><dc:creator>TrebleStick</dc:creator><description>&lt;p&gt;I see, in which case how do I check the start and end points of my application?&lt;/p&gt;
&lt;p&gt;If the soft device is only required for the BLE communication then&amp;nbsp;you&amp;#39;re right i wont be needing it, thanks.&amp;nbsp; I assumed that it would be required to work with the bootloader but I guess not. The plan is to write the new image to the address immediately after the current application and get the bootloader to validate it from there and swap them over. Writing the new image can be done the same way that I am currently receiving the FPGA image, just writing it to an address in flash rather than the FPGA. I&amp;#39;m just not sure which address to write it to.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Dual Bank Bootloader Over ESB</title><link>https://devzone.nordicsemi.com/thread/134600?ContentTypeID=1</link><pubDate>Mon, 04 Jun 2018 14:55:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f41609ac-a4df-498d-ba9a-c92e1939f837</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Jack,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;No, not really&amp;nbsp;CODE_REGION_1_START is used in the bootloader code to detect where it should swap the old image with the new image.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;But do you need softdevice in your application ? As far as I can see you are using ESB no BLE ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you use softdevice, you application start address has to adjust to be located after the softdevice. Please have a look at any example inside ble_peripheral or in the blinky example adjusted for softdevice:&amp;nbsp; \examples\peripheral\blinky\pca10040\s132\armgcc&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;How do you plan to swap image on the board 2 ? You would need to use a bootloader to do the task.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Dual Bank Bootloader Over ESB</title><link>https://devzone.nordicsemi.com/thread/134595?ContentTypeID=1</link><pubDate>Mon, 04 Jun 2018 14:25:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bd59c2d1-40e3-42b7-981d-a88cfee7e1bf</guid><dc:creator>TrebleStick</dc:creator><description>&lt;p&gt;The start address of the my app will be&amp;nbsp;&lt;span&gt;CODE_REGION_1_START right? I&amp;#39;ve not flashed the bootloader yet as I was trying to resolve&amp;nbsp;this issue&amp;nbsp;first.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I&amp;#39;m not really sure how to locate where my app ends in flash but I know that my hex file is around 240KB.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;m using the .ld file form the blinky example which may be the issue, this is what it looks like currently.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;SEARCH_DIR(.)
GROUP(-lgcc -lc -lnosys)

MEMORY
{
  FLASH (rx) : ORIGIN = 0x0, LENGTH = 0x80000
  UICR (rx) : ORIGIN = 0x10001000, LENGTH = 0x0FFFF000
  RAM (rwx) :  ORIGIN = 0x20000000, LENGTH = 0x10000
}

SECTIONS
{
  .uicr 0x1000120C :
  {
	KEEP(*(.uicr))
  } &amp;gt; UICR
  .fs_data :
  {
    PROVIDE(__start_fs_data = .);
    KEEP(*(.fs_data))
    PROVIDE(__stop_fs_data = .);
  } &amp;gt; RAM
} INSERT AFTER .data;

INCLUDE &amp;quot;nrf5x_common.ld&amp;quot;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;the origin of flash should maybe be moved to after the softdevice?&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Dual Bank Bootloader Over ESB</title><link>https://devzone.nordicsemi.com/thread/134590?ContentTypeID=1</link><pubDate>Mon, 04 Jun 2018 13:59:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5fa0b023-d2ae-4f58-ae07-00cdc3b6539d</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Okey, so maybe your code overwritten&amp;nbsp;the softdevice.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Where is there start address&amp;nbsp; of your application (and your bootloader if you have one ?) and where is your bin file located in the flash ?&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Dual Bank Bootloader Over ESB</title><link>https://devzone.nordicsemi.com/thread/134585?ContentTypeID=1</link><pubDate>Mon, 04 Jun 2018 13:37:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c618f08b-ef8b-4d3d-8dcb-820ae7cb5884</guid><dc:creator>TrebleStick</dc:creator><description>&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/Sketch.png" /&gt;This is what I get, soft device is s132 v2.0.0&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/4/screencaputer.png" /&gt;&lt;/p&gt;
&lt;p&gt;2nd image is what i get after re-flashing the soft device, seems to be correct now. Whenever I flash my code however it seems to mess with the soft device. Is there maybe an issue with my linker file or makefile?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Dual Bank Bootloader Over ESB</title><link>https://devzone.nordicsemi.com/thread/134580?ContentTypeID=1</link><pubDate>Mon, 04 Jun 2018 13:22:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1b303d05-4c6e-467d-9120-d5e25645f85c</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Jack,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Could you let which S132 version you used ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It looks pretty strange. The structure of the softdevice information is defined in Chapter 13 in S132 SDS v6.0&lt;/p&gt;
&lt;p&gt;The size of the softdevice is located at word 2nd meaning address 0x3008 (SOFTDEVICE_INFO_STRUCT_ADDRESS + 8)&lt;/p&gt;
&lt;p&gt;This is what I see when I flash the board with S132 v6.0 and use nrfjprog to read:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/370x81/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-f0a78da0dbdb4ee9a304dd792ec90b49/pastedimage1528118479735v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;0x26000 matched with the size of the softdevice (+MBR) of 152kB.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Dual Bank Bootloader Over ESB</title><link>https://devzone.nordicsemi.com/thread/134503?ContentTypeID=1</link><pubDate>Mon, 04 Jun 2018 09:32:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e8aa977a-cf20-4a74-9399-81dbb8f3569e</guid><dc:creator>TrebleStick</dc:creator><description>&lt;p&gt;I re-flashed the soft device and read this&lt;/p&gt;
&lt;p&gt;&lt;span&gt;CODE_REGION_1_START = 0x32FFF04F&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;0x3000 = 0x2311D001&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;any ideas?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Sorry for the delayed response.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Dual Bank Bootloader Over ESB</title><link>https://devzone.nordicsemi.com/thread/132532?ContentTypeID=1</link><pubDate>Fri, 18 May 2018 16:43:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a0c97364-d0c6-4865-8db1-9a0e1c9fed9e</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;CODE_REGION_1_START doesn&amp;#39;t seem to be correct. Usually it&amp;#39;s just the size of the softdevice which is written inside the softdevice (SOFTDEVICE_INFO_STRUCT_ADDRESS)&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can find this address usually by reading the address 0x3000 after you flash the softdevice.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Dual Bank Bootloader Over ESB</title><link>https://devzone.nordicsemi.com/thread/132522?ContentTypeID=1</link><pubDate>Fri, 18 May 2018 14:34:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ce768b5b-4eeb-421e-8fab-e0cf91942d57</guid><dc:creator>TrebleStick</dc:creator><description>&lt;p&gt;Hi Hung,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Correct, the FPGA image is sorted out within the app on board #2. The plan is to use existing code for sending new FPGA images to board #2 from board #1. It works over some ESB commands controlled using matlab with realterm as a serial communication to board #1.&amp;nbsp; I&amp;#39;ve included the library that is being used for&amp;nbsp;writing to flash&amp;nbsp;for that. Once i&amp;#39;ve got a valid bank 1 to write to i plan to just use the bootloader library to validate the image and boot.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;These are the relevant defines from the dfu_types.h file in the bootloader_dfu library and the respective values i get returned for them.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define NRF_UICR_BOOT_START_ADDRESS         (NRF_UICR_BASE + 0x14)      

#if defined(NRF52)
#define NRF_UICR_MBR_PARAMS_PAGE_ADDRESS    (NRF_UICR_BASE + 0x18)      
#endif

#define CODE_REGION_1_START                 SD_SIZE_GET(MBR_SIZE)   //0x2311D001    
#define SOFTDEVICE_REGION_START             MBR_SIZE                //0X00001000    

//nrf51 definitions

#elif NRF52

#define BOOTLOADER_REGION_START             0x0007A000                 
#define BOOTLOADER_SETTINGS_ADDRESS         0x0007F000                  
#define BOOTLOADER_MBR_PARAMS_PAGE_ADDRESS  0x0007E000                  

#define CODE_PAGE_SIZE                      0x1000                      

#else

#error No target defined

#endif

#define DFU_REGION_TOTAL_SIZE           (BOOTLOADER_REGION_START - CODE_REGION_1_START)             //0XDCF5CFFF            

#ifndef DFU_APP_DATA_RESERVED
#define DFU_APP_DATA_RESERVED           CODE_PAGE_SIZE * 0                                          //0X00000000   
#endif

#define DFU_IMAGE_MAX_SIZE_FULL         (DFU_REGION_TOTAL_SIZE - DFU_APP_DATA_RESERVED)             //0XDCF5CFFF    

#define DFU_IMAGE_MAX_SIZE_BANKED       (((DFU_IMAGE_MAX_SIZE_FULL) - \
                                        (DFU_IMAGE_MAX_SIZE_FULL % (2 * CODE_PAGE_SIZE)))/2)        //0X6E7AE000    
                                        
#define DFU_BL_IMAGE_MAX_SIZE           (BOOTLOADER_SETTINGS_ADDRESS - BOOTLOADER_REGION_START)        

#define DFU_BANK_0_REGION_START         CODE_REGION_1_START                                         //0x2311D001                    
#define DFU_BANK_1_REGION_START         (DFU_BANK_0_REGION_START + DFU_IMAGE_MAX_SIZE_BANKED)       //0X918CB001&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The issue seems to be the BOOTLOADER_REGION_START value when calculating&amp;nbsp;DFU_REGION_TOTAL_SIZE, as it is less than CODE_REGION_1_START. How do you suggest changing this?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/flashwriting.c"&gt;devzone.nordicsemi.com/.../flashwriting.c&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks again :)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Dual Bank Bootloader Over ESB</title><link>https://devzone.nordicsemi.com/thread/132514?ContentTypeID=1</link><pubDate>Fri, 18 May 2018 13:45:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:66265b26-6582-4b05-b159-e1de3dc69b1f</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Jack,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Leave the FPGA aside, I assume that you just need to flash a particular binary image to board #2 and the FPGA board will automatically be reprogrammed with the new image located on board #2 ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Could you check and find why&amp;nbsp;DFU_BANK_1_REGION_START =&amp;nbsp;0x918CB001 in your case ? It doesnt seem correct. Could you trace back and find what cause it to be &amp;gt;2GB ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;DFU_BANK_1_REGION_START by default equals (DFU_BANK_0_REGION_START + DFU_IMAGE_MAX_SIZE_BANKED)&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;How did you modify the bootloader to receive the image via ESB ? If you can manage to add a new dfu transport layer using ESB, then the bootloader should do its job to validate new image and swap the new image.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>