Hi,
I'm so confused about UART error when I enabled DFU and download bootloader.
In my application, UART worked normally when disabled DFU, but logging ERROR 1 after enabled DFU and download bootloader even I enabled FLOWCONTROL.
(SDK 17.02 sd-s112)

Hi,
You are getting an NRF_ERROR_SVC_HANDLER_MISSING which is interesting. Which SoftDevice are you using, and did you by any chance change SoftDevice version during the process without rebuilding your application? Also, it would be interesting to know which function returned NRF_ERROR_SVC_HANDLER_MISSING (that would be around line 124 in the file usr_ec600cn.c (which is not part of the SDK so I cannot check on my end).
Hi,
You are getting an NRF_ERROR_SVC_HANDLER_MISSING which is interesting. Which SoftDevice are you using, and did you by any chance change SoftDevice version during the process without rebuilding your application? Also, it would be interesting to know which function returned NRF_ERROR_SVC_HANDLER_MISSING (that would be around line 124 in the file usr_ec600cn.c (which is not part of the SDK so I cannot check on my end).
Thanks for you reply.
Which SoftDevice are you using,
s112_nrf52_7.2.0_softdevice
did you by any chance change SoftDevice version during the process without rebuilding your application?
What's this mean? Could I change SoftDevice version? I have no idea...
Also, it would be interesting to know which function returned NRF_ERROR_SVC_HANDLER_MISSING (that would be around line 124 in the file usr_ec600cn.c (which is not part of the SDK so I cannot check on my end).

ColorPen said:What's this mean? Could I change SoftDevice version? I have no idea...
I was wondering if you had switched to a different SoftDevice because of the error code you got, but looking at the code snippet that is not the case (it is just that the logger interprets the error code in the wrong way).
The line numbers does not exactly match, but as it is only one line off I assume you are getting a looks like you are getting an APP_UART_COMMUNICATION_ERROR (please double check with the debugger). If that is the case, the value that is passed to APP_ERROR_HANDLER() is the value of the ERRORSRC register. That value is 1 (as that is the value of NRF_ERROR_SVC_HANDLER_MISSING which you see in the log), and that is OVERRUN. From the Product specification this means that: "Overrun error. A start bit is received while the previous data still lies in RXD. (Previous data is lost.)".
You should not normally get OVERRUN when using flow-control, though.
PS: I just noticed that you have already got all this information from this thread from before, so it should be known. As Vidar commented, the operation of the application should not be affected by having a bootloader present (which no longer runs while the application is running). So I would be interested in knowing if you have made any other changes at the same time. What happens fi you take your current application (with no changes from the failing one!) and test it, but without having flashed the bootloader? Does it fail then, or not?
PSS: Please do not make duplicate threads in the future, as this is basically the same as your older thread just that important information was missing so we started from the beginning again.
PSS: Please do not make duplicate threads in the future, as this is basically the same as your older thread just that important information was missing so we started from the beginning again.
Sorry about that.
These video can express my confusion
VIDEO 1: without DFU
1.erase chip
2.program SoftDevice
3.download app
VIDEO 2&3: with DFU
1.erase chip
2.program SoftDevice
3.program bootloader
4.change app
5.using nRFConnect to update by mobile phone
6.RTT Viewer log