<?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>Application updated over the air doesn&amp;#39;t start properly</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/28715/application-updated-over-the-air-doesn-t-start-properly</link><description>Dear all, 
 I have nRF51 DK and I use mbed CLI to build my application that is simple mbed-os-example-blinky.
Also I have SDK11.0.0 and I built the ble dfu bootloader ( ./examples/dfu/bootloader/pca10028/dual_bank_ble_s130/armgcc ), merged that .hex</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 22 Dec 2017 08:40:58 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/28715/application-updated-over-the-air-doesn-t-start-properly" /><item><title>RE: Application updated over the air doesn't start properly</title><link>https://devzone.nordicsemi.com/thread/113808?ContentTypeID=1</link><pubDate>Fri, 22 Dec 2017 08:40:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:454d998a-af5f-4106-924a-528418711956</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;I&amp;#39;m sorry that I don&amp;#39;t have much experience with mbed-os. The mbed team should be at best position to help you.
One thing you can do is to reading out the flash and compare the hex files between flash your application directly and flash your application via DFU OTA.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Application updated over the air doesn't start properly</title><link>https://devzone.nordicsemi.com/thread/113805?ContentTypeID=1</link><pubDate>Thu, 21 Dec 2017 17:33:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5ae84c06-8e45-40bb-a669-bbab0b0c0460</guid><dc:creator>leon1d</dc:creator><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;when I build &lt;code&gt;NRF51_DK&lt;/code&gt;, which means softdevice + application, the result .hex file contains the paplication start address as 0x0001b000 and it works fine.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Thanks for your suggestion. I created &lt;code&gt;.mbedignore&lt;/code&gt; file as following:&lt;/p&gt;
&lt;p&gt;mbed-os/rtos/*
mbed-os/features/FEATURE_CLIENT/*
mbed-os/features/FEATURE_COMMON_PAL/*
mbed-os/features/FEATURE_UVISOR/*
mbed-os/features/frameworks/*
mbed-os/features/net/*
mbed-os/features/netsocket/*
mbed-os/features/storage/*
mbed-os/events/*&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;then rebuilt my application as &lt;code&gt;NRF51_DK_OTA&lt;/code&gt; target and updated it OTA and it works!
As far I understood we have only one thread this way and no events. Is that right?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Application updated over the air doesn't start properly</title><link>https://devzone.nordicsemi.com/thread/113804?ContentTypeID=1</link><pubDate>Thu, 21 Dec 2017 15:17:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8b1b98ec-7d50-4807-b748-b379ee14e359</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Have you tried to change the start address to 0x0001b000 and flash softdevice + application ?&lt;/p&gt;
&lt;p&gt;Could you check what happens inside wait() ? If you make a very simple application of blinking an LED (no wait()) should it work properly after OTA ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Application updated over the air doesn't start properly</title><link>https://devzone.nordicsemi.com/thread/113807?ContentTypeID=1</link><pubDate>Thu, 21 Dec 2017 12:31:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:19879d88-3495-47f7-98c3-9587120b25a1</guid><dc:creator>leon1d</dc:creator><description>&lt;p&gt;@Hung Bui
Yes, &lt;code&gt;NRF51_DK&lt;/code&gt; target: software + application (no bootloader) works fine.
That is why I suspect that &lt;code&gt;NRF51_DK_OTA&lt;/code&gt; target doesn&amp;#39;t have proper softdevice initialization during start of the application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Application updated over the air doesn't start properly</title><link>https://devzone.nordicsemi.com/thread/113806?ContentTypeID=1</link><pubDate>Thu, 21 Dec 2017 11:36:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4bcceb27-e3b5-4abb-a126-c1d4be761736</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;I&amp;#39;m not very familiar with mbed (you should post your question on mbed forum as well). But did the mbed firmware work if you flash it directly (softdevice + application, no bootloader) ?
Strange to see that the start address is 0x1C000. On the ld file for S110 it was correct.&lt;/p&gt;
&lt;p&gt;It&amp;#39;s normal to be in wait() most likely it put the CPU to sleep and if there isn&amp;#39;t any event, the CPU will remain in sleep mode.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>