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

S130'DFU example of SDK9.0.0 can't work

Hi, I use the SDK9.0.0 S130'DFU project in the parth of pca10028\dual_bank_ble_s130\arm5_no_packs\ for testing.I found S130'DFU code is different compare to the S110 of SDK6.0.0. I read the"How to generate the INIT file for the DFU" PDF file,and found that the old file format isn't support, "hex" file isn't support anymore . I can't find the link of the " Master Control Panel 3.8.0"program and "nrf" tool,where to download? The way of creating "DISTRIBUTION PACKETS (ZIP) " is too complex, I use the SDK11's of DFU tests ZIP file for DFU transport test,because the file format is right .Unfortunately,the NRF Master Controller transport file stop when going to the step of "writting Initialize DFU Parameters".The Nrf master controller write data"0x02-00" to characteristic of '1531",and Notification received from 1531 is "0x10-02-06".I debug the code in the S130'DFU project,and find the error fix at : `case OP_CODE_RECEIVE_INIT: ble_dfu_evt.ble_dfu_evt_type = BLE_DFU_RECEIVE_INIT_DATA;

        if (p_ble_write_evt->len < PKT_INIT_DFU_PARAM_LEN)
        {
            return ble_dfu_response_send(p_dfu,
                                         (ble_dfu_procedure_t) p_ble_write_evt->data[0],
                                         BLE_DFU_RESP_VAL_OPER_FAILED);
        }
        
        ble_dfu_evt.evt.ble_dfu_pkt_write.len    = 1;
        ble_dfu_evt.evt.ble_dfu_pkt_write.p_data = &(p_ble_write_evt->data[1]);

        p_dfu->evt_handler(p_dfu, &ble_dfu_evt);
        break;`

the p_ble_write_evt->len is 0x00,what happen?Is the app bug? Can you tell me how to use the S130 DFU project to update my app fireware?I have try some methode,But it can't work correctly.

Besides,` if (dfu_start || (!bootloader_app_is_valid(DFU_BANK_0_REGION_START))) { // nrf_gpio_pin_clear(UPDATE_IN_PROGRESS_LED);

    // Initiate an update of the firmware.
    err_code = bootloader_dfu_start();
    APP_ERROR_CHECK(err_code);

// nrf_gpio_pin_set(UPDATE_IN_PROGRESS_LED); }err_code always is 0x0003D99B,evenbootloader_dfu_start()returnsNRF_SUCCESS.I use key word to declare the variable of volatile static uint32_t err_code;`,but it does't work.

Parents Reply Children
No Data
Related