<?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>Combining DFU bootloader with application that doesn&amp;#39;t use softdevice.</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/55323/combining-dfu-bootloader-with-application-that-doesn-t-use-softdevice</link><description>I am using SDK15.3.0 and softdevice 6.1.1 on a nrf52DK. 
 I have a binary (compiled contiki application) that works when I flash it using nRF Connect. It is flashed from address 0x0000000 to 0x00008318. 
 Now I want to be able to update this binary using</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 06 Dec 2019 14:13:31 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/55323/combining-dfu-bootloader-with-application-that-doesn-t-use-softdevice" /><item><title>RE: Combining DFU bootloader with application that doesn't use softdevice.</title><link>https://devzone.nordicsemi.com/thread/224215?ContentTypeID=1</link><pubDate>Fri, 06 Dec 2019 14:13:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9c1c1724-615b-458f-8107-cb3a367bd1d7</guid><dc:creator>JenR</dc:creator><description>&lt;p&gt;Thanks, I changed the linker script of my application to start at the correct memory address. I also changed the RAM start so it doesn&amp;#39;t interfere with the softdevice. Now it is working!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Combining DFU bootloader with application that doesn't use softdevice.</title><link>https://devzone.nordicsemi.com/thread/224204?ContentTypeID=1</link><pubDate>Fri, 06 Dec 2019 13:44:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a8ee5199-575f-4683-95d4-00c7b603390e</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;Use a linker script from the BLE examples.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Combining DFU bootloader with application that doesn't use softdevice.</title><link>https://devzone.nordicsemi.com/thread/224203?ContentTypeID=1</link><pubDate>Fri, 06 Dec 2019 13:41:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:22d6fffe-c24c-4f86-affa-291f4c79d0a4</guid><dc:creator>JenR</dc:creator><description>&lt;p&gt;I do want to use BLE to do the DFU. My application does not use BLE. The idea is that my application decides when to enable the bootloader DFU with a softreboot (and setting the&amp;nbsp;&lt;span&gt;GPREGRET register). When the DFU is activated I can use BLE to connect to the DfuTarg and do the update.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Combining DFU bootloader with application that doesn't use softdevice.</title><link>https://devzone.nordicsemi.com/thread/224198?ContentTypeID=1</link><pubDate>Fri, 06 Dec 2019 13:38:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5544184f-2d25-4320-9441-a4153fe27725</guid><dc:creator>JenR</dc:creator><description>&lt;p&gt;Hmm I was afraid this would not be that simple. Any idea on how to&amp;nbsp;link the binary to a specific address? I am using the arm-none-eabi-gcc compiler.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Combining DFU bootloader with application that doesn't use softdevice.</title><link>https://devzone.nordicsemi.com/thread/224188?ContentTypeID=1</link><pubDate>Fri, 06 Dec 2019 13:18:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9b563a15-d2a0-465f-a92f-820607a38dce</guid><dc:creator>Turbo J</dc:creator><description>[quote userid="66784" url="~/f/nordic-q-a/55323/combining-dfu-bootloader-with-application-that-doesn-t-use-softdevice"]I used the srec_cat tool to offset my binary from 0x0000000 to ox00026000.&amp;nbsp;[/quote]
&lt;p&gt;VERY bad idea. Cortex-M binaries are linked on a specific address and will not work anywhere else in flash. You need to re-compile (or at least re-link) your application for the new 0x260000 start address.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Combining DFU bootloader with application that doesn't use softdevice.</title><link>https://devzone.nordicsemi.com/thread/224187?ContentTypeID=1</link><pubDate>Fri, 06 Dec 2019 13:16:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:caab1e31-fd07-4c65-bbb8-2dade451baac</guid><dc:creator>Amanda Hsieh</dc:creator><description>&lt;p&gt;Hi,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;You cannot use the secure_bootloader_ble to update with the application that doesn&amp;#39;t use the SoftDevice.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You should use &lt;a title="Secure DFU Bootloader over Serial Link (UART/USB)" href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v16.0.0/sdk_app_serial_dfu_bootloader.html?cp=6_1_4_4_4"&gt;Secure DFU Bootloader over Serial Link (UART/USB)&lt;/a&gt;&amp;nbsp;e.g. pca10040_uart instead if you don&amp;#39;t use BLE.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;-Amanda H.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Combining DFU bootloader with application that doesn't use softdevice.</title><link>https://devzone.nordicsemi.com/thread/224176?ContentTypeID=1</link><pubDate>Fri, 06 Dec 2019 12:50:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1b6a8623-4c65-40d9-9222-63150d8a1593</guid><dc:creator>JenR</dc:creator><description>&lt;p&gt;Just to clarify, below you can see the memory usage of the working ble_app_buttonless example. The buttonless example is written from 0x00026000 to 0x000329E8. The other occupied space is the bootloader and the softdevice I guess.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/1040x736/__key/communityserver-discussions-components-files/4/buttonless.PNG" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Below is my application, it also starts at 0x00026000, the bootloader and softdevice (which is not used by my application) are also present. I would assume the bootloader gives control to the softdevice and the softdevice will give control to the application at address 0x00026000, which is where my application is.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/1040x730/__key/communityserver-discussions-components-files/4/blink.PNG" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>