Hard Fault when an array is send over uart every 'n' second

Hello,

I am trying to send an array which has 2048 bytes via UART. But, when I add a some delay to repeat the the UART transfer, the code gets stuck on the HardFault. I am using nRF52DK for it.

This is the code:

 

#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include "app_uart.h"
#include "nrf_delay.h"
#include "nrf.h"
#include "bsp.h"
#include "nrf_uart.h"

#define UART_TX_BUF_SIZE 2048                         /**< UART TX buffer size. */
#define UART_RX_BUF_SIZE 256                          /**< UART RX buffer size. */
#define UART_HWFC APP_UART_FLOW_CONTROL_DISABLED      /**< Hardware flow control disabled. */

uint8_t data_array[2048] = {0};

void send_data_array(uint8_t *data_array, uint32_t length)
{
    for (uint32_t i = 0; i < length; i++)
    {
        uint32_t err_code = app_uart_put(data_array[i]);
        if (err_code != NRF_SUCCESS)
        {
            // Handle error if any
            printf("UART transmission error: %lu\n", err_code);
        }
    }
}

void intialise_array(uint8_t *array)
{
    for (uint32_t i = 0; i < 2048; i++)
    {
        array[i] = i % 255;  
    }
}

int main(void)
{
    uint32_t err_code;
    const app_uart_comm_params_t comm_params =
    {
        RX_PIN_NUMBER,
        TX_PIN_NUMBER,
        RTS_PIN_NUMBER,
        CTS_PIN_NUMBER,
        UART_HWFC,
        false,
        NRF_UART_BAUDRATE_115200
    };

    APP_UART_FIFO_INIT(&comm_params,
                       UART_RX_BUF_SIZE,
                       UART_TX_BUF_SIZE,
                       NULL,
                       APP_IRQ_PRIORITY_LOWEST,
                       err_code);

    if (err_code != NRF_SUCCESS)
    {
        // Initialization failed, handle error
        printf("UART initialization error: %lu\n", err_code);
        return err_code;
    }

    APP_ERROR_CHECK(err_code);

    intialise_array(data_array);

    while (true)
    {
        send_data_array(data_array, 2048);
        nrf_delay_ms(2000);
    }
}

I would greatly appreciate any help from the community. 

Related