我的项目使用 nrf52840 和 Freertos。该项目具有蓝牙广播和扫描功能。Bootloader 不使用 Freertos。当我在 nrf connect 中使用软件升级 DFU 时,DFU 功能没有响应。我使用 Freertos 创建了一个刷新任务,该任务一直在持续运行。未执行 DFU 升级。
我的项目使用 nrf52840 和 Freertos。该项目具有蓝牙广播和扫描功能。Bootloader 不使用 Freertos。当我在 nrf connect 中使用软件升级 DFU 时,DFU 功能没有响应。我使用 Freertos 创建了一个刷新任务,该任务一直在持续运行。未执行 DFU 升级。
My project uses nrf52840 and Freertos. This project has Bluetooth broadcasting and scanning functions. Bootloader does not use Freertos. When I used software to upgrade DFU in nrf connect, the DFU function did not respond. I created a refresh task using Freertos and it has been running continuously. DFU upgrade not performed
Hi,
Which SDK version are you using and how do intend to enter DFU mode? Is it via buttonless DFU (as demonstrated by the buttonless DFU sample), or some other method? What have you found by debugging and observing logs?
Hi,
I do not see DFU_SUPPORT in the list of preprocessor defines, and you use that in the code to decide if the code related to buttonless DFU should be included. So if you have not defined it, it is expecrted that it does not work. So please define it, rebuild and test again. If it does not work, please share in detail how you test and what you have found by testing.
By comparison, I have defined it in another file but did not upload it, # define DFU_SUPPORT 1
Is it defined in a header file that is inlcuded in your main.c? If not, it has no effect.
Yes, it is included in my main. c, and this definition works. Due to confidentiality reasons, I have deleted all irrelevant and brief information. Sorry.
I see. I cannot say more at this point then, you need to share details about how you test and how you debug and which results you get.
I see. I cannot say more at this point then, you need to share details about how you test and how you debug and which results you get.
I forgot to take a screenshot. I used Wireshark to capture and found that when using the DFU service to upload files, there was a display indicating retrieval failure. And then it ended, the app didn't show the upgrade rate chart, it was always empty packets sent by the master and slave. You should be able to quickly reproduce the problem I mentioned using the files I provided.
2248.examples.zipThis is a simple demo I built. I tested that it can be upgraded using the mobile APP, but cannot be upgraded using the PC software.You can test it by directly replacing it with the SDK
Hi,
Thank you for the sample. I am able to reproduce it with that sample. DFU works with an iPhone, but not with nRF Connect for Desktop. If I test with the buttonless DFK sample from SDK 17.1.0, I can perform buttonless DFU also from nRF Connect for dekstop.
The probelm is not in the bootloader, but the device does not enter DFU mode. From nRF Connect for Dekstop you can see a GATT timeout, and this is also visible in the attached sniffer traces: 0842.traces.zip.
I have not been able to see what causes this issue yet though. Have you had any progress on your end?
There's no way to fix this. At the moment, I can only use the mobile software for the upgrade work.