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

DFU: Failed to open transport backend

Hi Everyone,

I'm working on adding DFU on my project and here is my setup:

  • Softdevice = 7.1.0
  • SDK = 6.1.0
  • DFU Bootloader = Keil compiled from SDK 6.1.0
  • MCP = 3.8.0.7
  • nRFgo = 1.17.1

If the application is compiled with Keil, then OTA DFU works fine. But if i compile the application with GCC, then i got the message shown on the topic title.

My question is, is it possible to use a Keil compiled DFU bootloader together with a GCC compiled application? If yes, what are the necessary things to be considered?

I almost gone through all the related topics but i still cannot make it work, i'm running out of ideas already, i hope someone can help me point me on the right patch, thank you in advance.

BR, Geo

Parents
  • I tried with a Keil compiled bootloader from SDK 6.1.0 and SoftDevice 7.1.0. I was able to upload the ble_app_hrs example application in SDK 6.1.0 both compiled with Keil and GCC. So it should be possible. However, I was using MCP 3.7.1, since the 3.8 version requires an init file, and as far as I know that is not compatible with the bootloader from SDK 6.1.0.

    You are sure the application compiled with GCC runs on the board without using the bootloader right?

    You can also check out this bootloader example: github.com/.../nrf51-dfu-bootloader-for-gcc-compiler. This is a bootloader based on SDK 6.0.0 that can be compiled using gcc.

    Maybe you should consider migrating to SDK 8, since the bootloader has been changed significantly since SDK 6?

  • I just remember, what i noticed is after successfully downloaded the gcc-compiled-app to the chip through OTA, i still can switch to DFU via DFU service. Then i can see the new advertised device name, which confirms its on bootloader now. But once i connect and discover the services, it will have a long wait on the last handle? I think it was handle 0x000F? It seems the MCP was not able to receive the expected reply from the device, any ideas? Did the gcc-compiled-app corrupted the bootloader? But the size of the app is not that big..

Reply
  • I just remember, what i noticed is after successfully downloaded the gcc-compiled-app to the chip through OTA, i still can switch to DFU via DFU service. Then i can see the new advertised device name, which confirms its on bootloader now. But once i connect and discover the services, it will have a long wait on the last handle? I think it was handle 0x000F? It seems the MCP was not able to receive the expected reply from the device, any ideas? Did the gcc-compiled-app corrupted the bootloader? But the size of the app is not that big..

Children
No Data
Related