Tool/software:
Hello Ti,
In order to perform memory transfers via DMA with the C7X, I wanted to familiarize myself with this by using the main provided by TI, namely memcpy_main_baremetal.c. However, when I start a debug session, I never exit the Board_init() function. Below is the code of the main:
/**
* \file memcpy_main_baremetal.c
*
* \brief Main file for baremetal build
*/
/* ========================================================================== */
/* Include Files */
/* ========================================================================== */
#include <stdint.h>
#include <ti/board/board.h>
#include <ti/drv/uart/UART.h>
#include <ti/drv/uart/UART_stdio.h>
#include <stdio.h>
/* ========================================================================== */
/* Macros & Typedefs */
/* ========================================================================== */
/* None */
/* ========================================================================== */
/* Structure Declarations */
/* ========================================================================== */
/* None */
/* ========================================================================== */
/* Function Declarations */
/* ========================================================================== */
extern int32_t Udma_memcpyTest(void);
/* ========================================================================== */
/* Global Variables */
/* ========================================================================== */
/* None */
/* ========================================================================== */
/* Function Definitions */
/* ========================================================================== */
int main(void)
{
printf("DEbut de la config de la board");
Board_initCfg boardCfg;
boardCfg = BOARD_INIT_MODULE_CLOCK |
BOARD_INIT_PINMUX_CONFIG |
BOARD_INIT_UART_STDIO;
Board_init(boardCfg);
printf("Fin de la config de la board");
#if defined(BOARD_ENABLE_DDR_REG_VERIFY)
Board_STATUS status;
UART_printf("DDR Register Check In Progress...\n");
status = Board_init(BOARD_INIT_DDR_REG_VERIFY);
if(status != BOARD_SOK)
{
if(status == BOARD_DDR_CTL_REG_CHECK_FAIL)
{
UART_printf("DDR Control Register Check Failed!!\n");
}
else if(status == BOARD_DDR_PHYINDEP_REG_CHECK_FAIL)
{
UART_printf("DDR PHY INDEP Register Check Failed!!\n");
}
else if(status == BOARD_DDR_PHY_REG_CHECK_FAIL)
{
UART_printf("DDR PHY Register Check Failed!!\n");
}
return -1;
}
else
{
UART_printf("DDR Register Check Successful!\n");
}
#endif
Udma_memcpyTest();
return(0);
}
Note that I added printf statements before and after the function to check if I was entering it. None of these printf statements are visible in the console when I run. To see more details about what was happening, I used step into to understand what wasn't working. Each time, I find myself stuck in the following function:
To address this issue, I proceeded as follows:
- Launch the script launch.js
- Click on the R5_0 core, then click the "Run" button at the top
- Load an application on the C7X core and start it
Despite this, I have the same problem, which I do not understand...