<?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>External application DFU update</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/92140/external-application-dfu-update</link><description>We would like to try using the standard DFU process to update third party device connected to the nrf52 chip. 
 For proof-of-concept I want to use DFU update with experimental function NRF_DFU_SUPPORTS_EXTERNAL_APP=1 
 
 the documentation states that</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 21 Sep 2022 13:46:53 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/92140/external-application-dfu-update" /><item><title>RE: External application DFU update</title><link>https://devzone.nordicsemi.com/thread/387320?ContentTypeID=1</link><pubDate>Wed, 21 Sep 2022 13:46:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:73796af6-c082-4baa-8759-1a20dcfce51d</guid><dc:creator>YaroslavRakhnenko</dc:creator><description>&lt;p&gt;Thank you a lot!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: External application DFU update</title><link>https://devzone.nordicsemi.com/thread/387299?ContentTypeID=1</link><pubDate>Wed, 21 Sep 2022 12:55:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4b170797-bb9d-4308-a7f3-586d5cbb5a85</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi again,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;First you would need to generate the image .zip file with nrfutil that define the image as external application&amp;nbsp;(&lt;span&gt;--external-app)&amp;nbsp;&lt;/span&gt;. Please have a look &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/68413/how-to-use-external-app-firmware-update?pifragment-684=2"&gt;here.&lt;/a&gt;&amp;nbsp;and &lt;a href="https://infocenter.nordicsemi.com/topic/ug_nrfutil/UG/nrfutil/dfu_package_combinations.html?cp=10_7_3_0"&gt;here.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;the&amp;nbsp;image type (DFU_FW_TYPE_EXTERNAL_APPLICATION)&amp;nbsp;is assigned automatically when the bootloader decode the init packet (stored_init_cmd_decode() it will be stored to mp_init-&amp;gt;type)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;mp_init is available inside nrf_dfu_validation.c . You may need to add a global variable into nrf_dfu_req_handler.c that collect the value of &amp;nbsp;&lt;span&gt;mp_init&lt;/span&gt;&lt;span&gt;-&amp;gt;type, the same way as we collect the value of&amp;nbsp;m_firmware_start_addr variable by calling&amp;nbsp;nrf_dfu_validation_init_cmd_execute().&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: External application DFU update</title><link>https://devzone.nordicsemi.com/thread/387277?ContentTypeID=1</link><pubDate>Wed, 21 Sep 2022 11:35:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1dafdb10-a188-45eb-b173-20a4274d1e98</guid><dc:creator>YaroslavRakhnenko</dc:creator><description>&lt;p&gt;This is great news!&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Could you please explain where can I get information about the type of data (dfu_fw_type_t) I get? how to check what our data exactly is DFU_FW_TYPE_EXTERNAL_APPLICATION ?&lt;/p&gt;
&lt;p&gt;in functions for working with memory (including on_data_obj_write_request) I could not find such information ..&lt;/p&gt;
&lt;p&gt;thanks in advance!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: External application DFU update</title><link>https://devzone.nordicsemi.com/thread/387236?ContentTypeID=1</link><pubDate>Wed, 21 Sep 2022 09:08:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c349bf29-4038-49d5-b86f-a6239bf34722</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Rakhneko,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You understanding is correct. However we don&amp;#39;t have an example on how to do that.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;What you would need to do is to modify&amp;nbsp;on_data_obj_write_request() so that when it detect the image type to be&amp;nbsp;DFU_FW_TYPE_EXTERNAL_APPLICATION it would instead of calling&amp;nbsp;nrf_dfu_flash_store() it should call your own functoin nrf_dfu_external_flash_store() with the address space that you define.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;You may need to modify the verification function as well. After the image is received to the external flash, it has to be verified with the hash provided in the init packet.&amp;nbsp; Please have a look at the&amp;nbsp;postvalidate() function.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I&amp;#39;m afraid that you would need to study the code and make the modification on your own as we don&amp;#39;t have an example for this.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>