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

Fatal error

Hi

i am getting Fatal error while uploading code in my nRF52823 plz find attachment which i enclosed.

and showing break point at     NRF_BREAKPOINT_COND; plz tell me what should i do ?

Thank you

Parents
  • Try to add "DEBUG" to your preprocessor definitions, and see what the log says then. 

    1. Let me know if you are not sure how to define DEBUG in your preprocessor definitions.

    2. The log will probably point to somewhere in your code where it says APP_ERROR_CHECK(err_code); What function call returned that err_code? 

    3. Your next mission is to find out why it returned that err_code. 

    BR,

    Edvin

  • Thank you for replying fast
    i added DEBUG in preprocessor definition as like this #define DUBUG
    but i am not getting any msg in debug terminal 
    and one arrow (yellow color) indicating at     NRF_BREAKPOINT_COND;
    i dont know why this and i also attached a screenshot 

    Thank you

    And this the code

    /**
    * Copyright (c) 2016 - 2019, Nordic Semiconductor ASA
    *
    * All rights reserved.
    *
    * Redistribution and use in source and binary forms, with or without modification,
    * are permitted provided that the following conditions are met:
    *
    * 1. Redistributions of source code must retain the above copyright notice, this
    * list of conditions and the following disclaimer.
    *
    * 2. Redistributions in binary form, except as embedded into a Nordic
    * Semiconductor ASA integrated circuit in a product or a software update for
    * such product, must reproduce the above copyright notice, this list of
    * conditions and the following disclaimer in the documentation and/or other
    * materials provided with the distribution.
    *
    * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
    * contributors may be used to endorse or promote products derived from this
    * software without specific prior written permission.
    *
    * 4. This software, with or without modification, must only be used with a
    * Nordic Semiconductor ASA integrated circuit.
    *
    * 5. Any software provided in binary form under this license must not be reverse
    * engineered, decompiled, modified and/or disassembled.
    *
    * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
    * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
    * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
    * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
    * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
    * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
    * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    *
    */
    #include "app_error.h"

    #include "nrf_log.h"
    #include "nrf_log_ctrl.h"
    #include "app_util_platform.h"
    #include "nrf_strerror.h"
    #define DEBUG
    #if defined(SOFTDEVICE_PRESENT) && SOFTDEVICE_PRESENT
    #include "nrf_sdm.h"
    #endif

    /*lint -save -e14 */
    /**
    * Function is implemented as weak so that it can be overwritten by custom application error handler
    * when needed.
    */
    __WEAK void app_error_fault_handler(uint32_t id, uint32_t pc, uint32_t info)
    {
    __disable_irq();
    NRF_LOG_FINAL_FLUSH();

    #ifndef DEBUG
    NRF_LOG_ERROR("Fatal error");
    #else
    switch (id)
    {
    #if defined(SOFTDEVICE_PRESENT) && SOFTDEVICE_PRESENT
    case NRF_FAULT_ID_SD_ASSERT:
    NRF_LOG_ERROR("SOFTDEVICE: ASSERTION FAILED");
    break;
    case NRF_FAULT_ID_APP_MEMACC:
    NRF_LOG_ERROR("SOFTDEVICE: INVALID MEMORY ACCESS");
    break;
    #endif
    case NRF_FAULT_ID_SDK_ASSERT:
    {
    assert_info_t * p_info = (assert_info_t *)info;
    NRF_LOG_ERROR("ASSERTION FAILED at %s:%u",
    p_info->p_file_name,
    p_info->line_num);
    break;
    }
    case NRF_FAULT_ID_SDK_ERROR:
    {
    error_info_t * p_info = (error_info_t *)info;
    NRF_LOG_ERROR("ERROR %u [%s] at %s:%u\r\nPC at: 0x%08x",
    p_info->err_code,
    nrf_strerror_get(p_info->err_code),
    p_info->p_file_name,
    p_info->line_num,
    pc);
    NRF_LOG_ERROR("End of error report");
    break;
    }
    default:
    NRF_LOG_ERROR("UNKNOWN FAULT at 0x%08X", pc);
    break;
    }
    #endif

    NRF_BREAKPOINT_COND;
    // On assert, the system can only recover with a reset.

    #ifndef DEBUG
    NRF_LOG_WARNING("System reset");
    NVIC_SystemReset();
    #else
    app_error_save_and_stop(id, pc, info);
    #endif // DEBUG
    }
    /*lint -restore */

  • Edvin said:
    The error did not show up in the video. What did you change so that this issue occured?
  • ok I used 16th version in my project 

    in which what I changed I wrote DEBUG in preprocessor definition (in COMMON mode)


    After that, I changed NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED to 0 in sdk_config.h.

    and last and finally i commented //APP_ERROR_HANDLER(p_event->data.error_communication);
    after that 17th pin number led started blinking.
    i connected via nRF UART APP to the BLE then LED stopped blinking.

    But i am not able to receve on APP printf("\r\nUART started.\r\n");
    and also not able to  transmit

    Thank you

  • and I am using pin P0.06 for TX and P0.08 is for RX

  • it was a problem with BLE internal pin that's why it was not working.
    I changed pin configuration so it's working now.

    so I am able to receive and transmit both 
    Thank you so much for the help,

    I am so happy

Reply Children
No Data
Related