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

S112 crash at address 0x18808

Hi,

On a dice projet based on NRF52810. Sometime when I plug the battery charger the firmware crash at address 0x18808 and the call stack is empty !

This address is in softdevice , and I can't determine the cause !

SDK 16.0

Softdevice version: s112_nrf52_7.0.1_softdevice.hex

Please can you explain what is the function at 0x18808 address ?

Regards,

Gaétan

Parents
  • Hi,

    The batterie charger is :

    I have found a current injection on a pin "LED" connected directly to nrf52810.

    When bootloader software is present -> sometime  fix at adresse 0x18808

    When bootloader software is not in flash -> sometime  firmwre restart

    Now I make multiple tests with nRF52810 pin forced to ouput whith high current configuration...

    Regards,

    Gaétan

    EDIT:

    Now, without charger...

    I allways have the same fix at address 0x18808 when I connected to NUS !

    Last log is : <info> app: Data len is set to 0xB6(182)

    NrfToolBox: 

    With s112_nrf52_7.3.0_softdevice.hex address is 0x188D4

    EDIT 2:

    When I put the firmware compiled for nRF52810 directly in a PCA10040 (NnRF52832) all is OK no fix but in a nRF52810 allways fix when etablish a NUS connection. No problem when using DFU service. 

  • Hi Gaetan, 

    Could you please confirm that even without the charger you still have the issue when you are trying to connect with NUS ? 

    Could you check if you have any log on the device ? Any assertion ? Could you send the full log ?
    If you test with unmodified NUS example do you have the same issue  ? 

  • Hi,

    Yes, without charger, we have the issue when I try to connect with NUS (nRFToolBox)

    Please found the log on device:

    I have no tested with NUS example because if DFU service is not initialized ->all is OK !

    static void services_init(void)
    {
        uint32_t           err_code;
        ble_nus_init_t     nus_init;
        nrf_ble_qwr_init_t qwr_init = {0};
    
    #ifdef WITH_DFU
    
        ble_dfu_buttonless_init_t dfus_init =
        {
            .evt_handler = ble_dfu_evt_handler
        };
    
        // Initialize the async SVCI interface to bootloader.
        err_code = ble_dfu_buttonless_async_svci_init();
    #ifndef DEBUG
        //En DEBUG on a pas le bootloader, il est donc normal d'avoir une erreur
        APP_ERROR_CHECK(err_code);
    #endif
    
        err_code = ble_dfu_buttonless_init(&dfus_init);
        APP_ERROR_CHECK(err_code);
    
    #endif
    
        // Initialize Queued Write Module.
        qwr_init.error_handler = nrf_qwr_error_handler;
    
        err_code = nrf_ble_qwr_init(&m_qwr, &qwr_init);
        APP_ERROR_CHECK(err_code);
    
        // Initialize NUS.
        memset(&nus_init, 0, sizeof(nus_init));
    
        nus_init.data_handler = nus_data_handler;
    
        err_code = ble_nus_init(&m_nus, &nus_init);
        APP_ERROR_CHECK(err_code);
    }
     

    Firmware: BL+Settings+App+SD.zip

Reply
  • Hi,

    Yes, without charger, we have the issue when I try to connect with NUS (nRFToolBox)

    Please found the log on device:

    I have no tested with NUS example because if DFU service is not initialized ->all is OK !

    static void services_init(void)
    {
        uint32_t           err_code;
        ble_nus_init_t     nus_init;
        nrf_ble_qwr_init_t qwr_init = {0};
    
    #ifdef WITH_DFU
    
        ble_dfu_buttonless_init_t dfus_init =
        {
            .evt_handler = ble_dfu_evt_handler
        };
    
        // Initialize the async SVCI interface to bootloader.
        err_code = ble_dfu_buttonless_async_svci_init();
    #ifndef DEBUG
        //En DEBUG on a pas le bootloader, il est donc normal d'avoir une erreur
        APP_ERROR_CHECK(err_code);
    #endif
    
        err_code = ble_dfu_buttonless_init(&dfus_init);
        APP_ERROR_CHECK(err_code);
    
    #endif
    
        // Initialize Queued Write Module.
        qwr_init.error_handler = nrf_qwr_error_handler;
    
        err_code = nrf_ble_qwr_init(&m_qwr, &qwr_init);
        APP_ERROR_CHECK(err_code);
    
        // Initialize NUS.
        memset(&nus_init, 0, sizeof(nus_init));
    
        nus_init.data_handler = nus_data_handler;
    
        err_code = ble_nus_init(&m_nus, &nus_init);
        APP_ERROR_CHECK(err_code);
    }
     

    Firmware: BL+Settings+App+SD.zip

Children
Related