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

RTT not appearing in modified ble_app_uart example

    Hello,

I have been developing software on the ble_app_uart example in Segger Embedded Studio with sdk 17.0.2.  The example has RTT enabled but I noticed when I try to use RTT in my modified version that no RTT shows up in the debugging window.  I added various libraries and changed the config file, but did not remove anything or turn off anything in the config file from the example.  I wasn't sure how to troubleshoot this and was wondering what potential problems might be interfering with RTT outputs in the debugging terminal.  Here is my main() code, I can add more if necessary.  

int main(void)
{
    bool erase_bonds;
    ret_code_t rc;

    // Initialize.
    twi_init();
    uart_init();
    log_init();
    timers_init();
    buttons_leds_init(&erase_bonds);
    power_management_init();
    ble_stack_init();
    gap_params_init();
    gatt_init();
    services_init();
    advertising_init();
    conn_params_init();


    /* Register first to receive an event when initialization is complete. */
    (void) fds_register(fds_evt_handler);


    rc = fds_init();
    APP_ERROR_CHECK(rc);

    /* Wait for fds to initialize. */
    wait_for_fds_ready();

    // Start execution.
    printf("\r\nUART started.\r\n");



    //turn on LED3 while on and not in sleep mode
    nrf_gpio_cfg_output(LED2);
    nrf_gpio_pin_clear(LED2);

    NRF_LOG_INFO("Debug logging for UART over RTT started.");



    //button press waits for a button press event or times out and goes to sleep mode if no button press is received in 15 seconds
   
    
    buttonPress(); 

    nrf_delay_ms(100);

    advertising_start(); 

    //advertise for 15 seconds then try to send the data
    nrf_delay_ms(5000);

    //SendTime sends the entire memory, should add a condition to make sure that it's connected to BLE, potentially only send new entries etc.
    SendTime(); 

    //wait 5 seconds after sending the data before entering sleep mode, just here to give time to read in devtools for debugging
    nrf_delay_ms(5000);

    sleep_mode_enter_wakeup_enabled();
    
   


    // Enter main loop.
    for (;;)
    {
        idle_state_handle();
    }
}

Parents Reply Children
  • So in your modified example project, the application is able to run past NRF_LOG_INFO() without asserting, correct?

    Yes.

    Can you also confirm that the UART backend for logging is disabled and that only the RTT is enabled for logging, as enabling both might cause trouble.

    logging UART is just enabled through the code: 

    NRF_LOG_BACKEND_UART_ENABLED

     in the sdk_config.h file correct?  I can't find this anywhere in the config file which is strange since using UART with putty still works.  Could this be enabled elsewhere?  I also noticed on the page I linked for NRF_LOG_BACKEND_UART_ENABLED that the description says "enable RTT backend."  Is this  a mistake?   Or does the UART backend enable both?

Related