Thread:DRA829、 TDA4VM 中讨论的其他器件
工具/软件:
我们一直在 EVM 开发板上与 J721e 处理器的主域 MCU2_0 RF5 处理器配合使用。 在测试和试验过程中、我们使用 GESI 扩展板使 SPI6 成为从器件并使用回调接收 SPI 数据。
但是、当我们为主域 MCU3_0 处理器构建并在其上运行时、永远不会调用回调。 这就好像中断没有正常工作或没有正确映射。 下面您将看到我们正在进行的一些设置。
我们已经了解了 RTOS PDK 中的 mcspi 示例、我们可以看到的唯一区别是我们使用的是中的存储器设置
// Initialize the SPI driver
SPI_init( );
// Set up the SPI for transmit
SPI_Params spiTxParams;
SPI_Params spiRxParams;
// Domain/instance
uint32_t rxDomain = SPI_MCSPI_DOMAIN_MAIN;
uint32_t txDomain = SPI_MCSPI_DOMAIN_MAIN;
uint32_t rxInstance = MCSPI6_CONFIG_IDX;
uint32_t txInstance = MCSPI3_CONFIG_IDX;
MCSPI_socInit( );
//
// Initialize the SPI configuration for RX
//
SPI_HWAttrs spiCfgRx;
SPI_socGetInitCfg(rxDomain, rxInstance, &spiCfgRx);
spiCfgRx.enableIntr = BTRUE;
spiCfgRx.edmaHandle = NULL;
spiCfgRx.dmaMode = BFALSE;
/* Set the SPI init configurations */
spiCfgRx.chNum = RX_SPI_CHAN;
spiCfgRx.chnCfg[RX_SPI_CHAN].dataLineCommMode = MCSPI_DATA_LINE_COMM_MODE_1; // D0: MOSI; D1: MISO
spiCfgRx.chnCfg[RX_SPI_CHAN].tcs = MCSPI_CS_TCS_0PNT5_CLK;
spiCfgRx.chnCfg[RX_SPI_CHAN].trMode = MCSPI_RX_ONLY_MODE;
spiCfgRx.chnCfg[RX_SPI_CHAN].enableFIFO = 1;
MCSPI_configSocIntrPath(rxInstance, &spiCfgRx, BTRUE);
SPI_socSetInitCfg(rxDomain, rxInstance, &spiCfgRx);
UART_printf("SPI RX: Setup for domain: %d, instance: %d, channel: %d, intNum: %d\n", rxDomain, rxInstance, RX_SPI_CHAN, spiCfgRx.intNum);
SPI_Params_init(&spiRxParams);
spiRxParams.mode = SPI_SLAVE;
spiRxParams.transferMode = SPI_MODE_CALLBACK; //SPI_MODE_BLOCKING;
spiRxParams.transferCallbackFxn = SpiRxCallback;
spiRxParams.transferTimeout = SemaphoreP_WAIT_FOREVER;
spiRxParams.frameFormat = SPI_POL1_PHA0;
spiRxParams.dataSize = 8; // 8 bytes
spiRx = SPI_open(rxDomain, rxInstance, &spiRxParams);
if ( NULL == spiRx )
{
UART_printf("Error initializing Rx SPI%d\n", rxInstance);
return;
}
McSPISetSlaveChipSel(spiCfgRx.baseAddr, spiCfgRx.chNum, 1); // USE CS1
UART_printf("Rx SPI%d opened successfully.\n", rxInstance);
我们的问题是、我们是否可以研究一些建议或步骤、以便了解在从一个 MCU 迁移到另一个 MCU 时为什么这样做不起作用?



