<?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>Update user application through master mcu</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/73386/update-user-application-through-master-mcu</link><description>Hello forum, 
 I have a new project that requires Bluetooth connectivity and I think that the nRF52805 suits me best due to its very small size. 
 The nRF52805 would work as a slave and it would communicate via UART with the master mcu. 
 My biggest concern</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 31 Mar 2021 10:34:34 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/73386/update-user-application-through-master-mcu" /><item><title>RE: Update user application through master mcu</title><link>https://devzone.nordicsemi.com/thread/302696?ContentTypeID=1</link><pubDate>Wed, 31 Mar 2021 10:34:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ff4a4962-33a4-41a7-b8f4-dff667b183d3</guid><dc:creator>Marte Myrvold</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;We do not have a memory layout for the nRF52805, but it is very similar to n&lt;span&gt;RF52810, with only some differences in the peripherals, but not flash and RAM, so you can look at the memory layout for that SoC.&lt;/span&gt;&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th colspan="1" rowspan="1"&gt;Usage&lt;/th&gt;
&lt;th colspan="1" rowspan="1"&gt;Memory range nRF52810 (S112 v7.0.x)&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;Bootloader settings&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;0x0002 F000 - 0x0003 0000 (4 kB)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;MBR parameter storage&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;0x0002 E000 - 0x0002 F000 (4 kB)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;Bootloader&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;0x0002 8000 - 0x0002 E000 (24 kB)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;Application area (incl. free space)&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;0x0001 9000 - 0x0002 8000 (60 kB)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;SoftDevice&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;0x0000 1000 - 0x0001 9000 (96 kB)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;Master Boot Record (MBR)&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;0x0000 0000 - 0x0000 1000 (4 kB)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span&gt;This can also be found&amp;nbsp;&lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.2/lib_bootloader.html?cp=7_1_3_5_0_7#lib_bootloader_memory"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards,&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Marte&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Update user application through master mcu</title><link>https://devzone.nordicsemi.com/thread/302654?ContentTypeID=1</link><pubDate>Tue, 30 Mar 2021 19:26:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c6956b7d-14a3-427b-9833-652ff26cafdc</guid><dc:creator>George555</dc:creator><description>&lt;p&gt;I have enought space on the host mcu. That is not a problem.&lt;/p&gt;
&lt;p&gt;Another question that also poped up on my head is: what the address of the 3 sections would be. I mean having a bootloader, softdevice and main application. At what address would I place each one into the flash?&lt;/p&gt;
&lt;p&gt;I see in the examples that bootloader doesn&amp;#39;t go into the address 0x0. So, doesn&amp;#39;t the application boots always on the bootloader section?&lt;/p&gt;
&lt;p&gt;If no, how can I force the program to enter the bootloader?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Update user application through master mcu</title><link>https://devzone.nordicsemi.com/thread/302653?ContentTypeID=1</link><pubDate>Tue, 30 Mar 2021 19:20:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e084cd09-269e-4a0f-ab04-0bf85028c62f</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;BTDT.&lt;/p&gt;
&lt;p&gt;Ended up implementing the DFU host side myself from scratch&amp;nbsp; - dunno if the code just was a bad fit for my case or if I simply did not find it in the first place. Code on the NRF side was the uart bootloader, just customized via sdk_config.h and custom_board.h header files.&lt;/p&gt;
&lt;p&gt;You need to be able to store the firmware and the header on the main MCU system somehow. My device was a daterlogger with an SD card, so I had enough storage capacity.&lt;/p&gt;
&lt;p&gt;If you don&amp;#39;t have enough space on the main MCU, you can also update the NRF firmware OTA from bluetooth.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Update user application through master mcu</title><link>https://devzone.nordicsemi.com/thread/302639?ContentTypeID=1</link><pubDate>Tue, 30 Mar 2021 16:02:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:150b8702-09fc-416c-a1ea-f892e9a75905</guid><dc:creator>George555</dc:creator><description>&lt;p&gt;Hi Marte,&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t want to use an nRF52 device to update another nRF52. I&amp;#39;m sorry for the misunderstanding. &lt;/p&gt;
&lt;p&gt;I want to update an nRF52 device via UART. At least its user application.&lt;/p&gt;
&lt;p&gt;I have a product with a general purpose mcu. But now it requires a Blueetooth connectivity. I thought of using an nRF52 device as a slave along with my general purpose mcu.&lt;/p&gt;
&lt;p&gt;Though, it is essential for me to be able to update its firmware. It would be much better for me to know that I can update the user application in case any bug arises in the future.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Update user application through master mcu</title><link>https://devzone.nordicsemi.com/thread/302609?ContentTypeID=1</link><pubDate>Tue, 30 Mar 2021 13:48:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ffccc08e-7d27-420a-ba21-524e700dea78</guid><dc:creator>Marte Myrvold</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;We do not have an official DFU master code for using a nRF52 to update another nRF52, only using a PC or a mobile phone. However, it is possible to implement this feature.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/nordic/short-range-guides/b/software-development-kit/posts/getting-started-with-nordics-secure-dfu-bootloader"&gt;This guide&lt;/a&gt;&amp;nbsp;shows a step by step guide for getting started with secure DFU bootloader, and in &lt;a href="https://devzone.nordicsemi.com/nordic/short-range-guides/b/software-development-kit/posts/getting-started-with-nordics-secure-dfu-bootloader#h108sjziaxo3m81rkgr1has5r1d72qtu"&gt;Appendix 6 DFU Master code&lt;/a&gt;&amp;nbsp;of that guide, you can find example code for UART DFU master. Please note that the example code is made for SDK v14.2, so if you are using a newer version of the SDK, you will have to migrate the example to your version. As this is not an official example, I cannot guarantee that it will work out of the box, but you can use it as a starting point.&lt;/p&gt;
&lt;p&gt;You will need a bootloader in order to perform DFU on your device, as the&amp;nbsp;actual updating is performed by the bootloader. We have several&amp;nbsp;&lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.2/examples_bootloader.html"&gt;DFU bootloader examples&lt;/a&gt;&amp;nbsp;in our SDK. Since you do not want over the air, you can take a look at the&amp;nbsp;&lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.2/sdk_app_serial_dfu_bootloader.html"&gt;Secure DFU Bootloader over Serial Link (UART/USB)&lt;/a&gt;&amp;nbsp;example.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Marte&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>