<?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>buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/8238/buttonless-dfu---bootloader-hangs</link><description>hi, 
 I am trying to integrate buttonless switch to boot loader as explained in the documentation and the hrs experimental example. 
 I am working on SDK7.2.0 and using the nrf51DK so far - later on I will port everything to my own hardware, but the</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 21 Jul 2015 10:35:43 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/8238/buttonless-dfu---bootloader-hangs" /><item><title>RE: buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/thread/29703?ContentTypeID=1</link><pubDate>Tue, 21 Jul 2015 10:35:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a0389ede-6950-4b8f-9434-c1cb9ece0a50</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@Wim: So you can add break point and debug now ? Thanks for the suggestion, I will update the blog. I think we can close the case. Could you mark the answer as correct ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/thread/29702?ContentTypeID=1</link><pubDate>Tue, 21 Jul 2015 08:47:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:50157294-3888-418b-a032-e64c15fd4f79</guid><dc:creator>wim</dc:creator><description>&lt;p&gt;that&amp;#39;s what I do, did not have the -O option, do not do any optimisations, for easy debugging; I think that if I would add -O, I would probably not need the other, that is what I read the link you sent ( &lt;a href="https://tls.mbed.org/kb/development/arm-thumb-error-r7-cannot-be-used-in-asm-here)"&gt;tls.mbed.org/.../arm-thumb-error-r7-cannot-be-used-in-asm-here)&lt;/a&gt;, so maybe it would be a good idea to add that in your side note as well ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/thread/29701?ContentTypeID=1</link><pubDate>Tue, 21 Jul 2015 08:30:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b3c4a9b2-195b-4761-b1f6-067061160eba</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;I&amp;#39;m glad that it worked now:)
If you only add -fomit-frame-pointer but not -O, would it be linked ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/thread/29699?ContentTypeID=1</link><pubDate>Mon, 20 Jul 2015 16:37:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aba079ae-cd42-4acc-b4aa-b5dbdadadaa1</guid><dc:creator>wim</dc:creator><description>&lt;p&gt;That seemed to do the trick!
I was able to flash in another application when switching from my own application to dfu.
Now I will have to find a way to use this option only when compiling for release, because apparently, when adding that linker option, it makes debugging virtually impossible.
Of course, debugging and stepping isn&amp;#39;t really possible with the soft device and its real time behavior, so I am bound to using the RTT printfs anyway.
But hurray, it works!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/thread/29698?ContentTypeID=1</link><pubDate>Mon, 20 Jul 2015 16:07:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:17dff41a-3c60-4ab6-9aaf-08bbdc3dd20b</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@wim: sorry, I missed that :( You know, it&amp;#39;s Monday :P&lt;/p&gt;
&lt;p&gt;Could you try this &lt;a href="https://tls.mbed.org/kb/development/arm-thumb-error-r7-cannot-be-used-in-asm-here"&gt;https://tls.mbed.org/kb/development/arm-thumb-error-r7-cannot-be-used-in-asm-here&lt;/a&gt; ?&lt;/p&gt;
&lt;p&gt;It&amp;#39;s also mentioned here: &lt;a href="https://devzone.nordicsemi.com/question/42043/bootloader_utilc-does-not-compile-with-gcc-without-os-option/"&gt;https://devzone.nordicsemi.com/question/42043/bootloader_utilc-does-not-compile-with-gcc-without-os-option/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/thread/29697?ContentTypeID=1</link><pubDate>Mon, 20 Jul 2015 16:01:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:445b17ad-1b8b-4019-95e9-f705126e221a</guid><dc:creator>wim</dc:creator><description>&lt;p&gt;That is the toolchain I use - see log.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/thread/29700?ContentTypeID=1</link><pubDate>Mon, 20 Jul 2015 15:57:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ed45da47-e5a5-4135-a7f5-147b544daa56</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@wim: I would suggest you to try with GNU Tools ARM Embedded 4.9 2015q1. If it works then we know that it&amp;#39;s the toolchain issue.
Note that you don&amp;#39;t really have to use the same toolchain for application and bootloader.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/thread/29696?ContentTypeID=1</link><pubDate>Mon, 20 Jul 2015 15:46:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:50a9904d-8b75-4250-882c-f24d598276e6</guid><dc:creator>wim</dc:creator><description>&lt;p&gt;Hi, i just recompiled with your boot loader_util_gcc.c. Previous compilation was with just the sdk9 file copied into my project.
Here is the complete log (please note that I do not use make, but a qbs project in QtCreator with bare metal plugin (see my &lt;a href="https://devzone.nordicsemi.com/blogs/702/debugging-using-qtcreator-on-mac/"&gt;blog&lt;/a&gt; on this topic). So I could send you my project in this format if you&amp;#39;d find this useful):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;compiling SEGGER_RTT.c
compiling app_timer.c
compiling softdevice_handler.c
compiling ble_my_service.c
compiling app.c
compiling nrf_assert.c
compiling dfu_app_handler.c
compiling device_manager_peripheral.c
compiling app_ble.c
compiling main.c
compiling ble_advdata.c
compiling ble_dfu.c
compiling bootloader_util_gcc.c
compiling ble_srv_common.c
compiling hw_init.c
compiling pstorage.c
compiling system_nrf51.c
compiling app_gpiote.c
compiling ble_conn_params.c
compiling app_button.c
compiling nrf_delay.c
compiling SEGGER_RTT_printf.c
compiling spi_master.c
compiling gcc_startup_nrf51.s
compiling interval_record.c
compiling app_scheduler.c
compiling app_error.c
linking myproject.elf
/Applications/gcc-arm-none-eabi-4_9-2015q1/bin/arm-none-eabi-gcc /myproject/build/.obj/0da82cc593b2789a/softdevice_handler.c.o /myproject/build/.obj/10b4b06de9fa4197/app_timer.c.o /myproject/build/.obj/2119f2cbff76308c/ble_my_service.c.o /myproject/build/.obj/2a94b74f64a12597/hw_init.c.o /myproject/build/.obj/3f21d9844c5aeb60/spi_master.c.o /myproject/build/.obj/52e6ddd7334b868d/app.c.o /myproject/build/.obj/52e6ddd7334b868d/app_ble.c.o /myproject/build/.obj/53d20156d67b39d5/interval_record.c.o /myproject/build/.obj/65c02569a3cb2e93/pstorage.c.o /myproject/build/.obj/7e838a4599280656/gcc_startup_nrf51.s.o /myproject/build/.obj/83b245554f8d0dc8/app_gpiote.c.o /myproject/build/.obj/84f1db46c2de65db/SEGGER_RTT.c.o /myproject/build/.obj/84f1db46c2de65db/SEGGER_RTT_printf.c.o /myproject/build/.obj/9a6794832d15ad24/nrf_delay.c.o /myproject/build/.obj/9b63ec1070f3e8e0/app_error.c.o /myproject/build/.obj/9b63ec1070f3e8e0/nrf_assert.c.o /myproject/build/.obj/a232a46d3525d371/device_manager_peripheral.c.o /myproject/build/.obj/a64b663017d02128/app_scheduler.c.o /myproject/build/.obj/bfa30bb80df21156/system_nrf51.c.o /myproject/build/.obj/d814ef6a0ceb640b/ble_advdata.c.o /myproject/build/.obj/d814ef6a0ceb640b/ble_conn_params.c.o /myproject/build/.obj/d814ef6a0ceb640b/ble_srv_common.c.o /myproject/build/.obj/d9b86cfc338eea47/ble_dfu.c.o /myproject/build/.obj/d9b86cfc338eea47/bootloader_util_gcc.c.o /myproject/build/.obj/d9b86cfc338eea47/dfu_app_handler.c.o /myproject/build/.obj/e0aeaa9c3d490126/app_button.c.o /myproject/build/.obj/f27fede2220bcd32/main.c.o -g -Wl,-undefined,error -Xlinker -Map=/myproject/build/myproject.map -mthumb -mabi=aapcs -L/Users/wim/Projects/nordic/myproject/../nRF51_SDK_7.2.0/components/toolchain/gcc/ -T/Users/wim/Projects/nordic/myproject/../nRF51_SDK_7.2.0/components/toolchain/gcc/gcc_nrf51_s110_xxaa.ld -mcpu=cortex-m0 -Wl,--gc-sections --specs=nano.specs -lc -lnosys -o /myproject/build/myproject.elf
/Users/wim/Projects/nordic/myproject_no_rf_sdk720/src/dfu/bootloader_util_gcc.c: In function &amp;#39;StartApplication&amp;#39;:
/Users/wim/Projects/nordic/myproject_no_rf_sdk720/src/dfu/bootloader_util_gcc.c:64:1: error: r7 cannot be used in asm here
 }
 ^
lto-wrapper: /Applications/gcc-arm-none-eabi-4_9-2015q1/bin/arm-none-eabi-gcc returned 1 exit status
/Applications/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: lto-wrapper failed
collect2: error: ld returned 1 exit status
Process failed with exit code 1.
The following products could not be built for configuration qtc_nrf51822_9693700c-debug:
	myproject
Error while building/deploying project myproject_norf_sdk720 (kit: nrf51822)
When executing step &amp;quot;Qbs Build&amp;quot;
17:33:13: Elapsed time: 00:02.
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/thread/29695?ContentTypeID=1</link><pubDate>Mon, 20 Jul 2015 15:40:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:89db54b8-2b02-4d60-9da7-ffe9fa834561</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Could you post the error log  ? Also I notice that you use bootloader_util.c instead of bootloader_util_gcc.c, do you have other modification ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/thread/29694?ContentTypeID=1</link><pubDate>Mon, 20 Jul 2015 15:38:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c084e18e-8dfd-4042-8010-ea9ca844487a</guid><dc:creator>wim</dc:creator><description>&lt;p&gt;I tried also with your file. The file compiles ok, but the linker complains. I have noticed that in SDK9 each gcc makefile project is accompanied by its own .ld file, while in sdk7.2.0 the general toolchain .ld file is used. Should I do the same? are there any differences? Also, I use version 4.9 of gcc, is that ok?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/thread/29693?ContentTypeID=1</link><pubDate>Mon, 20 Jul 2015 15:14:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f188df55-a342-4af2-8cec-bb1f68c92aaf</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@wim: I&amp;#39;m testing here, the compiler didn&amp;#39;t complain. I attached the file in my answer. Could you try my file ?&lt;/p&gt;
&lt;p&gt;If you still have the issue, please send us your project (including the whole project, where all other example is removed).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/thread/29692?ContentTypeID=1</link><pubDate>Mon, 20 Jul 2015 14:48:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1aa6041d-ddf8-49f0-bdcb-4a5f813719ce</guid><dc:creator>wim</dc:creator><description>&lt;p&gt;I did exactly that but got the error message during the linking stage as described in my previous comment:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/.../src/dfu/bootloader_util.c: In function &amp;#39;bootloader_util_reset&amp;#39;:
/.../src/dfu/bootloader_util.c:106:1: error: r7 cannot be used in asm here
 }
 ^
lto-wrapper: /Applications/gcc-arm-none-eabi-4_9-2015q1/bin/arm-none-eabi-gcc returned 1 exit status
/Applications/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: lto-wrapper failed
collect2: error: ld returned 1 exit status
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So it complains about the last line, about r7.
How can I solve this? Is it a linker script issue with the SDK7.2.0 linker script?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/thread/29691?ContentTypeID=1</link><pubDate>Mon, 20 Jul 2015 13:34:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:54ef89c6-0ba4-4480-b19d-4eec10e4ad66</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@wim: I&amp;#39;m sorry, you were correct, in the bootloader_util_gcc.c we called the function &amp;quot;StartApplication()&amp;quot;&lt;/p&gt;
&lt;p&gt;But the principle is the same, you replace the code you found in side bootloader_util_reset() in bootloader_util.c in SDK 9.0 to the code in bootloader_util_gcc.c in StartApplication() in SDK v7.2.&lt;/p&gt;
&lt;p&gt;Your function should look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;static inline void StartApplication(uint32_t start_addr)
{
 __asm volatile(
        &amp;quot;ldr   r0, [%0]\t\n&amp;quot;            // Get App initial MSP for bootloader.
        &amp;quot;msr   msp, r0\t\n&amp;quot;             // Set the main stack pointer to the applications MSP.
        &amp;quot;ldr   r0, [%0, #0x04]\t\n&amp;quot;     // Load Reset handler into R0.

        &amp;quot;movs  r4, #0xFF\t\n&amp;quot;           // Move ones to R4.
        &amp;quot;sxtb  r4, r4\t\n&amp;quot;              // Sign extend R4 to obtain 0xFFFFFFFF instead of 0xFF.

        &amp;quot;mrs   r5, IPSR\t\n&amp;quot;            // Load IPSR to R5 to check for handler or thread mode.
        &amp;quot;cmp   r5, #0x00\t\n&amp;quot;           // Compare, if 0 then we are in thread mode and can continue to reset handler of bootloader.
        &amp;quot;bne   isr_abort\t\n&amp;quot;           // If not zero we need to exit current ISR and jump to reset handler of bootloader.

        &amp;quot;mov   lr, r4\t\n&amp;quot;              // Clear the link register and set to ones to ensure no return.
        &amp;quot;bx    r0\t\n&amp;quot;                  // Branch to reset handler of bootloader.

        &amp;quot;isr_abort:  \t\n&amp;quot;

        &amp;quot;mov   r5, r4\t\n&amp;quot;              // Fill with ones before jumping to reset handling. Will be popped as LR when exiting ISR. Ensures no return to application.
        &amp;quot;mov   r6, r0\t\n&amp;quot;              // Move address of reset handler to R6. Will be popped as PC when exiting ISR. Ensures the reset handler will be executed when exist ISR.
        &amp;quot;movs  r7, #0x21\t\n&amp;quot;           // Move MSB reset value of xPSR to R7. Will be popped as xPSR when exiting ISR. xPSR is 0x21000000 thus MSB is 0x21.
        &amp;quot;rev   r7, r7\t\n&amp;quot;              // Reverse byte order to put 0x21 as MSB.
        &amp;quot;push  {r4-r7}\t\n&amp;quot;             // Push everything to new stack to allow interrupt handler to fetch it on exiting the ISR.

        &amp;quot;movs  r4, #0x00\t\n&amp;quot;           // Fill with zeros before jumping to reset handling. We be popped as R0 when exiting ISR (Cleaning up of the registers).
        &amp;quot;movs  r5, #0x00\t\n&amp;quot;           // Fill with zeros before jumping to reset handling. We be popped as R1 when exiting ISR (Cleaning up of the registers).
        &amp;quot;movs  r6, #0x00\t\n&amp;quot;           // Fill with zeros before jumping to reset handling. We be popped as R2 when exiting ISR (Cleaning up of the registers).
        &amp;quot;movs  r7, #0x00\t\n&amp;quot;           // Fill with zeros before jumping to reset handling. We be popped as R3 when exiting ISR (Cleaning up of the registers).
        &amp;quot;push  {r4-r7}\t\n&amp;quot;             // Push zeros (R4-R7) to stack to prepare for exiting the interrupt routine.

        &amp;quot;movs  r0, #0xF9\t\n&amp;quot;           // Move the execution return command into register, 0xFFFFFFF9.
        &amp;quot;sxtb  r0, r0\t\n&amp;quot;              // Sign extend R0 to obtain 0xFFFFFFF9 instead of 0xF9.
        &amp;quot;bx    r0\t\n&amp;quot;                  // No return - Handler mode will be exited. Stack will be popped and execution will continue in reset handler initializing other application.
        &amp;quot;.align\t\n&amp;quot;
        :: &amp;quot;r&amp;quot; (start_addr)             // Argument list for the gcc assembly. start_addr is %0.
        :  &amp;quot;r0&amp;quot;, &amp;quot;r4&amp;quot;, &amp;quot;r5&amp;quot;, &amp;quot;r6&amp;quot;, &amp;quot;r7&amp;quot; // List of register maintained manually.
    );
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/8524.bootloader_5F00_util_5F00_gcc.c"&gt;bootloader_util_gcc.c&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/thread/29690?ContentTypeID=1</link><pubDate>Mon, 20 Jul 2015 13:14:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:905bf594-c385-4a81-aacd-a1efb7ab4e56</guid><dc:creator>wim</dc:creator><description>&lt;p&gt;In the side note a reference is made to bootloader_util_reset() in bootloader_util.c.
In SDK7.2 I only have a bootloader_util_gcc.c, and there is no bootloader_util_reset function in there, only a &amp;#39;StartApplication&amp;#39;. Is it that function I need to replace withbootloader_util_reset of 9.0.0?
Do i need some change to the linker script too? Because after replacing the code with the code of sdk9, I get following linker error:
/.../myproject/src/dfu/bootloader_util_gcc.c: In function &amp;#39;bootloader_util_reset&amp;#39;:
/.../myproject/src/dfu/bootloader_util_gcc.c:73:1: error: r7 cannot be used in asm here
}
^
lto-wrapper: /Applications/gcc-arm-none-eabi-4_9-2015q1/bin/arm-none-eabi-g++ returned 1 exit status
/Applications/gcc-arm-none-eabi-4_9-2015q1/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: lto-wrapper failed
collect2: error: ld returned 1 exit status&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/thread/29689?ContentTypeID=1</link><pubDate>Mon, 20 Jul 2015 12:09:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bd686072-a824-4720-bcf3-51920a7a4391</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@wim: I updated a side note in &lt;a href="https://devzone.nordicsemi.com/blogs/685/common-faq-on-dfu/"&gt;Question C in this FAQ&lt;/a&gt;  which may solve your issue.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/thread/29688?ContentTypeID=1</link><pubDate>Fri, 17 Jul 2015 15:13:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6eaaeedd-20ae-46d2-93e3-6dfeb8f2255c</guid><dc:creator>wim</dc:creator><description>&lt;p&gt;ble_app_hrs with dfu does work when I compile it with Keil. But when I compile it with gcc then it doesn&amp;#39;t work.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: buttonless DFU - bootloader hangs</title><link>https://devzone.nordicsemi.com/thread/29687?ContentTypeID=1</link><pubDate>Fri, 17 Jul 2015 14:36:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c630d5d0-146c-4d9e-9c98-d5ccd4887a3e</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@wim: Could you check if you use our experimental ble_app_hrs with dfu it would work for you ? That you can set the device in bootloader mode by writing to the DFU characteristic and can overwrite the hrs firmware with something else ?&lt;/p&gt;
&lt;p&gt;You should also check if your initdata is prepared correctly. But I assume that it&amp;#39;s correct since you mentioned that you managed to update your application using button+reset.&lt;/p&gt;
&lt;p&gt;Have you made sure you enabled IS_SRVC_CHANGED_CHARACT_PRESENT = 1 in your application main.c ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>