<?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>Execute application code from bank 1?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/21134/execute-application-code-from-bank-1</link><description>Hello to the Nordic community! 
 A rather theoretical question: Would it be possible to have a system, comprising of a SoftDevice + Application + Custom Bootloader, where the application could reside in either &amp;quot;Bank 0&amp;quot; or &amp;quot;Bank 1&amp;quot;. 
 I am implying that</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 05 Apr 2017 14:08:02 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/21134/execute-application-code-from-bank-1" /><item><title>RE: Execute application code from bank 1?</title><link>https://devzone.nordicsemi.com/thread/82702?ContentTypeID=1</link><pubDate>Wed, 05 Apr 2017 14:08:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e93cd1d5-c686-4724-a714-31d46d2651d7</guid><dc:creator>raccoon</dc:creator><description>&lt;p&gt;Much obliged!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Execute application code from bank 1?</title><link>https://devzone.nordicsemi.com/thread/82701?ContentTypeID=1</link><pubDate>Wed, 05 Apr 2017 13:53:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bdc06785-9a29-4619-9494-c497644d0e11</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;It should be possible to modify the bootloader to not perform the swap and start the new application in bank 1, but then you run into a problem the next time you want to perform a OTA DFU. You would then have to alternate the banks every time you perform a OTA DFU, i.e. place the new firmware in bank 0 and then keep the old firmware in bank 1. The next  time you have to place the new firmware in bank 1 ... etc.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Execute application code from bank 1?</title><link>https://devzone.nordicsemi.com/thread/82700?ContentTypeID=1</link><pubDate>Wed, 05 Apr 2017 13:45:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2054c25d-4026-4e48-875b-0cfdaefb6b99</guid><dc:creator>raccoon</dc:creator><description>&lt;p&gt;Thank you Bjorn, but my question is: do I need to swap the contents of the two banks? Can&amp;#39;t I just keep the old firmware in bank 0 and execute the new one from bank 1 (ofc I will need to implement a custom bootloader)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Execute application code from bank 1?</title><link>https://devzone.nordicsemi.com/thread/82699?ContentTypeID=1</link><pubDate>Wed, 05 Apr 2017 13:26:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bf9989bc-ca14-42ae-8034-0d3f0530f761</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;Hi Raccon,&lt;/p&gt;
&lt;p&gt;our Secure Bootloader (SDK v12.x.x and newer) and our Legacy bootloader(SDK v11.0.0 and older) both perform dual bank updates, i.e. the new firmware image is placed in bank 1 and its integrity is verified by the bootloader before it overwrites the old application located in bank 0. So if the update for some reason fails it will revert back to the old application in bank 0.&lt;/p&gt;
&lt;p&gt;It would be possible to modify the bootloader so that it jumps to the new application after the integrity chech(crc check) and then have the new application pass execution back to the bootloader after perform some other check to signal the swap. However, I think this is just making our existing solution more complicated. If you want to implement some additional checks before the swap is performed, then I suggest that you implement them in our bootloader and not in the new application.&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></channel></rss>