Running latest CCSV6.1 on Windows 8.1 with latest TIRTOS 2.12, converting a TIRTOS 2.10 project
My question: "What has changed in the TIRTOS version 2.12 regarding the SPI Operation?."
Previously my code ran fine, but now I find the task which has the SPI operating freezes when the following code is executed
lcdTransferOK = SPI_transfer(LCD_SPI, &lcdTransaction);
With TIRTSOS 2.10 there was no issue, however under 2.12 the task containing this call will run a random number of times then freeze completely. ROV shows the task as Blocked UNKNOWN.
To verify the SPI is the issue, I changed the SPI_Open to include transferTimeout of 1000
SPI_Params_init(&lcdSpiParams);
lcdSpiParams.mode = SPI_MASTER;
lcdSpiParams.frameFormat = SPI_POL1_PHA1; // clock high in idle, clock on rising edge
lcdSpiParams.transferMode = SPI_MODE_BLOCKING;
lcdSpiParams.transferTimeout = 1000;
lcdSpiParams.dataSize = 8;
lcdSpiParams.bitRate = 1000000;
lcdSpiParams.transferCallbackFxn = NULL;
LCD_SPI = SPI_open(Board_SPI3, &lcdSpiParams);
Now my task runs but intermittently freezes for 1000ms then resumes again.
So I know the SPI is what is causing the freezing, what I don't know is why?