<?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 no-transport dual-bank DFU and dependencies</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/46336/bootloader-no-transport-dual-bank-dfu-and-dependencies</link><description>I&amp;#39;m just a bit fuzzy on how all of the bootloader stuff comes together. 
 
 Our application is small (100K-ish), so a dual-bank strategy seems appropriate. 
 It uses a proprietary bus protocol that we&amp;#39;d rather not pack into the bootloader. 
 We need to</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Sat, 21 Sep 2024 16:07:18 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/46336/bootloader-no-transport-dual-bank-dfu-and-dependencies" /><item><title>RE: Bootloader no-transport dual-bank DFU and dependencies</title><link>https://devzone.nordicsemi.com/thread/503333?ContentTypeID=1</link><pubDate>Sat, 21 Sep 2024 16:07:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a6d793e3-67ce-4ef0-a319-661b0b845df1</guid><dc:creator>Allen_</dc:creator><description>&lt;p&gt;Hi,Berg:&lt;/p&gt;
&lt;p&gt;Do not continue to execute after starting serial transmission, sure that the serial port on the hardware is through and has been verified, any good troubleshooting suggestions, thank you&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/_AE5FE14FFE5647725F00_20240922000408.png" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader no-transport dual-bank DFU and dependencies</title><link>https://devzone.nordicsemi.com/thread/274274?ContentTypeID=1</link><pubDate>Mon, 12 Oct 2020 11:11:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d27301fe-3c75-498c-9365-d02950a24f65</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;We provide DFU libraries for Android and iOS to help integrate DFU support in mobile apps. These are available on our github page here:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/NordicSemiconductor/Android-DFU-Library"&gt;https://github.com/NordicSemiconductor/Android-DFU-Library&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/NordicSemiconductor/IOS-Pods-DFU-Library"&gt;https://github.com/NordicSemiconductor/IOS-Pods-DFU-Library&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Please create a new thread if you have further questions to this.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader no-transport dual-bank DFU and dependencies</title><link>https://devzone.nordicsemi.com/thread/274263?ContentTypeID=1</link><pubDate>Mon, 12 Oct 2020 10:52:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:995f2ec6-a2bd-4f7f-ae97-1c20bfac0444</guid><dc:creator>lxjc</dc:creator><description>&lt;p&gt;&lt;span&gt;Thanks for your reply.&lt;/span&gt;&lt;/p&gt;
&lt;p class="tgt"&gt;&lt;span class="tgt"&gt;A mobile application can only send bin file, but not.bat file. Can you use this method for DFU&lt;/span&gt;&lt;/p&gt;
&lt;p class="tgt"&gt;&lt;span class="tgt"&gt;Now I know the DFU process, but I don&amp;#39;t know how to implement it.&lt;/span&gt;&lt;/p&gt;
&lt;p class="tgt"&gt;&lt;span class="tgt"&gt;Application Scenario:&lt;br /&gt;The application part：&lt;br /&gt;Transferring the new firmware to flash memory（.bin）&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="tgt"&gt;&lt;span class="tgt"&gt;The rest is done in BootLoader.&lt;/span&gt;&lt;span class="tgt"&gt;(I&amp;#39;m not so sure)&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader no-transport dual-bank DFU and dependencies</title><link>https://devzone.nordicsemi.com/thread/270228?ContentTypeID=1</link><pubDate>Fri, 18 Sep 2020 07:27:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6ee2bda6-bc78-4acf-91ec-6cd7c2266de9</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;It will require a few small changes to work with SDK 16/17, but nothing major. I think I would recommend starting with 15.3.0 though to make sure it works first, then use this implementantion as a reference when integrating background DFU to your exisitng SDK 16 based app.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader no-transport dual-bank DFU and dependencies</title><link>https://devzone.nordicsemi.com/thread/270205?ContentTypeID=1</link><pubDate>Fri, 18 Sep 2020 04:50:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f29d6646-a67d-4001-9fd9-11c632050f2e</guid><dc:creator>lxjc</dc:creator><description>&lt;p&gt;&lt;span&gt;Hi,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks for your reply.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Can SDK 16 use this example?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader no-transport dual-bank DFU and dependencies</title><link>https://devzone.nordicsemi.com/thread/186189?ContentTypeID=1</link><pubDate>Thu, 09 May 2019 12:41:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:41993418-ec73-4ac2-b240-3d5dc52fa6c9</guid><dc:creator>Vidar Berg</dc:creator><description>[quote userid="78854" url="~/f/nordic-q-a/46336/bootloader-no-transport-dual-bank-dfu-and-dependencies"]We also have a &amp;quot;revert to factory image&amp;quot; button; the bootloader must copy this image from an&amp;nbsp;external SPI ROM IC.[/quote]
&lt;p&gt;Forgot to address this question. I think the easiest way to implement this would be to create another transport layer in the application code to fetch the image from external flash. The init packet would need to be stored along with the FW image in that case, and the bootloader must support version downgrade (compile flag).&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader no-transport dual-bank DFU and dependencies</title><link>https://devzone.nordicsemi.com/thread/185890?ContentTypeID=1</link><pubDate>Wed, 08 May 2019 09:35:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:326370bf-3bf7-4611-9770-1a4c9dba811c</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Attached an example that supports serial DFU over UART from the application.&amp;nbsp;I included a readme with the project, please let me know if anything is unclear.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/nRF5_5F00_SDK_5F00_15.3.0_5F00_background_5F00_dfu.zip"&gt;devzone.nordicsemi.com/.../nRF5_5F00_SDK_5F00_15.3.0_5F00_background_5F00_dfu.zip&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader no-transport dual-bank DFU and dependencies</title><link>https://devzone.nordicsemi.com/thread/185176?ContentTypeID=1</link><pubDate>Fri, 03 May 2019 12:16:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2273586b-a514-43a8-8d68-f11ed58c7f11</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;We introduced support for background DFU in SDK 15.3.0,&amp;nbsp;but without any examples to demonstrate how you can use it, unfortunately.&lt;/p&gt;
&lt;p&gt;In SDK 15.3 you can compile the bootloader with&amp;nbsp;NRF_BL_DFU_ALLOW_UPDATE_FROM_APP=1 to allow the bootloader to activate an image uploaded by the app, and you can compile the app with&amp;nbsp;NRF_DFU_IN_APP&amp;nbsp;to use certain bootloader modules in the app. nrf_dfu_settings.c for instance.&lt;/p&gt;
&lt;p&gt;I&amp;nbsp;will try to make a simple example to test &amp;quot;background&amp;quot; DFU next week if time permits, but I can&amp;#39;t promise anything. So I&amp;#39;d suggest that you start with the bootloader in 15.3.0 and&amp;nbsp;integrate necessary DFU modules into your app and see if you can get the bootloader to activate the image for you. It should not be necessary to modify the bootloader itself.&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 5/7&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I expect to have the sample code ready tomorrow, took a bit longer time than I expected.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader no-transport dual-bank DFU and dependencies</title><link>https://devzone.nordicsemi.com/thread/184991?ContentTypeID=1</link><pubDate>Thu, 02 May 2019 18:02:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:62c47ca8-9e48-46a6-a35d-4b37960fe268</guid><dc:creator>Kenzi</dc:creator><description>&lt;p&gt;I&amp;#39;d love pointers to any APIs, high level architecture ideas or example projects that could help me out here.&amp;nbsp; How to make my bootloader validate and load an image stored by the application, as well as how to reboot to the application from there.&amp;nbsp; I&amp;#39;m using 15.2 with S132.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader no-transport dual-bank DFU and dependencies</title><link>https://devzone.nordicsemi.com/thread/184141?ContentTypeID=1</link><pubDate>Fri, 26 Apr 2019 18:16:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1aa0334f-85ec-45dd-995b-cdcf83777213</guid><dc:creator>Kenzi</dc:creator><description>&lt;p&gt;I&amp;#39;m using 15.2 with&amp;nbsp;S132&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader no-transport dual-bank DFU and dependencies</title><link>https://devzone.nordicsemi.com/thread/184105?ContentTypeID=1</link><pubDate>Fri, 26 Apr 2019 13:45:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:75d9a6d4-2770-4b46-89e4-f848a0496f6e</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;There are several modules from the bootloader which you can re-use in your bootloader, function to transfer execution to app&amp;nbsp;and&amp;nbsp;image validation for instance. So maybe not a custom bootloader, but rather a modified version of the one we provide.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I think you can get a basic overview of the bootloader by going through the&amp;nbsp;nrf_bootloader_init() function in nrf_bootloader.c.&lt;/p&gt;
&lt;p&gt;1. Checks to see if should enter DFU mode or not&lt;/p&gt;
&lt;p&gt;2. Check if there are any new FW images to activate (could be an image that the app has stored).&lt;/p&gt;
&lt;p&gt;3. If dfu_enter == true, initialize transport and wait for DFU master to initiate a DFU&lt;/p&gt;
&lt;p&gt;3. if dfu_enter == false, verify CRC of app image and boot the app.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Which SDK version are you currently using? I&amp;#39;ll try to check how you can use the validate function for an image stored by the application.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader no-transport dual-bank DFU and dependencies</title><link>https://devzone.nordicsemi.com/thread/183597?ContentTypeID=1</link><pubDate>Wed, 24 Apr 2019 18:45:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f32d69e6-19e6-4ca4-9973-17b3339c6c40</guid><dc:creator>Kenzi</dc:creator><description>&lt;p&gt;Thanks for the reply.&lt;/p&gt;
&lt;p&gt;By &amp;quot;custom bootloader,&amp;quot; you mean&amp;nbsp;we would have to implement our own validation of the received image, perform the direct FLASH writes to copy Bank 1 to Bank 0, and figure out our own way to reboot from the bootloader to the application?&lt;/p&gt;
&lt;p&gt;The serial bootloaders I assume still require a (serial?) transport - does this imply that they can&amp;#39;t be leveraged for at least some of the above steps?&lt;/p&gt;
&lt;p&gt;If I were to completely hand-write a bootloader as described above, I think the only unknown at this point is how to get back to the application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader no-transport dual-bank DFU and dependencies</title><link>https://devzone.nordicsemi.com/thread/183561?ContentTypeID=1</link><pubDate>Wed, 24 Apr 2019 15:00:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:39fb5a1d-1faa-4d95-93db-691f5fc0e1da</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I think there are mainly two options to consider for this: 1 create a custom transport layer with your proprietary bus protocol and integrate it with the existing bootloader (&lt;a href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v15.3.0/lib_dfu_transport.html?cp=5_0_3_5_2"&gt;create custom transport&lt;/a&gt;). 2. Let the application handle the DFU transfer and storing of image to bank 1, then make&amp;nbsp;a custom&amp;nbsp;bootloader that&amp;#39;s responsible for validation and activation of the new image. The current bootloader implementation does not support background DFU (ie. app handled dfu transfer).&lt;/p&gt;
[quote user=""]When I bring in even just &lt;strong&gt;nrf_bootloader_app_start&lt;/strong&gt;, it seems to also depend on an overwhelming number of BLE services, so I&amp;#39;m not sure if I&amp;#39;m on the right track with that... I thought DFU doesn&amp;#39;t necessarily&amp;nbsp;require BLE?[/quote]
&lt;p&gt;BLE is only required if you use the BLE transport layer. The serial bootloaders in SDK 15.x.x do not require a Softdevice to be present.&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>