This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nrf51-ble-app-temp Example - DFU App returns error

(Before debugging with IAR, I downloaded both the bootloader.hex and s110 7.1 hex with nrfjprog.exe)

  • Modified SDK files : bootloader_util_arm.c

(copied asm code SDK 8.1 since I use ICCARM, thanks to Vidar Berg for answering my prev question.)

  • Using nRFGo Studio 1.19.0

  • Board : PCA10001 V 2.0.0 (Rev. 2 MCU)

  • Test device : Nexus 5 (Android 5.1.1) and iPhone 6+ (iOS 8.4)

  • Toolbox App Version : 1.14.1 (at Nexus 5) & 2.1 (at iPhone 6+)

  • nRF Loader iOS App (Ver 1.0.0) : Cannot scan the board

/************************/

Hi, before defining "BLE_DFU_APP_SUPPORT" the example worked well.

However, after defining, both Tool kit app showed error.

At iOS,

iOS

The "nRF Loader" app doesn't scan the board.

Loader

Where as, at Android

An1

I selected "NO".

An2

An3

Master

What could be the reason?

Added 8, July, 2015 :

I noticed that, at debugging mode and after calling on_rw_auth_req (at ble_dfu.c),

the board falls into a HardFault_handler.

I couldn't check the returned error number from on_ctrl_pt_write.

Added : 12, July, 2015 : I tried to open your bootloader IAR project.

However, it showed this message 6 times.

msg

log

So, I followed your linker script settings manually.

I also changed the ble_stack_init as well.

Thanks to you, if there isn't application at memory 0x16000,

the firmware update over the air (DFU) is managed successfully.

I tested with the test devices mentioned above (Nexus 5 and iPhone 6+).

linker 1 linker 2

linker 3

After downloading the bootloader firmware,

I changed the linker setting of the nrf51-ble-app-temp example.

  1. Is this setting in the nrf51-ble-app-temp example's linker script is fine?

I took a guess using this memory layout.

  1. The hilarious thing is that, after downloading this nrf51-ble-app-temp example,

I tried the DFU using the nRF Toolbox app and failed.

With detail, when using the Nexus 5, it sometimes update the firmware.

(Edited : Now the Nexus 5 works well.)

Whereas when using the iPhone 6+, the app kept shows "waiting".

I placed a breakpoint at the bootloader project after the board was advertising HRS.

I noticed that, when using the iPhone 6+, after requesting upload, the breakpoint didn't triggered.

The firmware was kept running at the nrf51-ble-app-temp example.

However, it did not lost connection together.

So, what could be the problem?

-Regards, Mango922

Parents Reply Children
No Data
Related