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

SDK14.2 DFU power cycle issue

Situation: Trying to upgrade previous versions of the SD and BL (V3.0.0) to (V5.0.0) Problem: device power cycles after a new application is flashed to the device into the V5.0.0 SD and BL.

Steps:

  1. Take target device, including dev board, and program SD3.0.0 and V3.0 buttonless bootloader
  2. DFU an App appropriate for SDV3.0.0 and run it.
  3. DFU the new SD and BL (V5.0.0) package to the device
  4. DFU an App appropriate for SDV5.0.0 and run it

Result of performing all 4 steps is that the device keeps power cycling. If you skip step 2, the procedure works and the device functions as desired.

I am guessing that there is some internal register that is written to during the DFU process in step 2, and that this register is not being updated to accommodate the position changes due to the larger SD.

Is there a work around?

Parents
  • After recreating the failure repeatedly and dumping the code and UICR from various stages of programming that lead to the failure and to a successful unit I can state the following:

    • The program space/code is being updated correctly, and to the correct spot in memory space
    • The UICR is different in one field when I compare the failed unit to the passed unit.
    • in the pass cases the entry is : 101200001500000015000000FFFFFFFFFFFFFFFFBC
    • in the failed cases the entry is:101200001500000015000000FFFFFFFFFEFFFFFFBD

    This entry is added to the UICR after the V3.0 app is written to the device So now I need to figure out which UICR it is and what it controls

Reply
  • After recreating the failure repeatedly and dumping the code and UICR from various stages of programming that lead to the failure and to a successful unit I can state the following:

    • The program space/code is being updated correctly, and to the correct spot in memory space
    • The UICR is different in one field when I compare the failed unit to the passed unit.
    • in the pass cases the entry is : 101200001500000015000000FFFFFFFFFFFFFFFFBC
    • in the failed cases the entry is:101200001500000015000000FFFFFFFFFEFFFFFFBD

    This entry is added to the UICR after the V3.0 app is written to the device So now I need to figure out which UICR it is and what it controls

Children
No Data
Related