Hello,
I'm trying to run the iLLD QspiDmaDemo on the TC277 Starter Kit. I already copied the neccassary files into an empty SW_Framework project in eclipse and built the project.
However, after flashing the output, the project didn't work, because the function call
IfxQspi_initSlso(slso, chConfig->sls.output.mode, chConfig->sls.output.driver, slso->select);
in
IfxQspi_SpiMaster_initChannel() (IfxQspi_SpiMaster.c, Line 281)
tries to set the pin-mode of the slso in the function (IfxPort.c)
There occures an error in &iocr[iocrIndex].U:
Attachment 2664
what results in:
Attachment 2665
Has anyone an idea what is wrong?
Whenn I comment the function call of IfxQspi_initSlso() everything works fine, however the chipselect is not activated...
Kind regards
Thomas
I'm trying to run the iLLD QspiDmaDemo on the TC277 Starter Kit. I already copied the neccassary files into an empty SW_Framework project in eclipse and built the project.
However, after flashing the output, the project didn't work, because the function call
IfxQspi_initSlso(slso, chConfig->sls.output.mode, chConfig->sls.output.driver, slso->select);
in
IfxQspi_SpiMaster_initChannel() (IfxQspi_SpiMaster.c, Line 281)
Code:
...
if (chHandle->slso.port == NULL_PTR)
{
chHandle->activateSlso = NULL_PTR;
chHandle->deactivateSlso = NULL_PTR;
}
else
{
if (!chConfig->base.mode.autoCS)
{
chHandle->activateSlso = &IfxQspi_SpiMaster_activateSlso;
chHandle->deactivateSlso = &IfxQspi_SpiMaster_deactivateSlso;
/** - Override the SLSO manually as general-purpose output */
chHandle->deactivateSlso(chHandle);
IfxQspi_initSlso(slso, chConfig->sls.output.mode, chConfig->sls.output.driver, IfxPort_OutputIdx_general);
}
else
{
chHandle->activateSlso = NULL_PTR;
chHandle->deactivateSlso = NULL_PTR;
IfxQspi_initSlso(slso, chConfig->sls.output.mode, chConfig->sls.output.driver, slso->select);
}
}
...
Code:
void IfxPort_setPinMode(Ifx_P *port, uint8 pinIndex, IfxPort_Mode mode)
{
volatile Ifx_P_IOCR0 *iocr = &(port->IOCR0);
uint8 iocrIndex = (pinIndex / 4);
uint8 shift = (pinIndex & 0x3U) * 8;
uint16 passwd = IfxScuWdt_getCpuWatchdogPassword();
if (port == &MODULE_P40)
{
IfxScuWdt_clearCpuEndinit(passwd);
port->PDISC.U &= ~(1 << pinIndex);
IfxScuWdt_setCpuEndinit(passwd);
}
__ldmst(&iocr[iocrIndex].U, (0xFFUL << shift), (mode << shift));
}
Attachment 2664
what results in:
Attachment 2665
Has anyone an idea what is wrong?
Whenn I comment the function call of IfxQspi_initSlso() everything works fine, however the chipselect is not activated...
Kind regards
Thomas