Tool/software: TI-RTOS
Hi,
I am implementing a HWI for SSI1 within RTOS.
My question is about interrupt flags.
I initialise SSI1 like this
SSIDisable(SSI1_BASE);
SSIClockSourceSet(SSI1_BASE, SSI_CLOCK_SYSTEM);
SSIConfigSetExpClk(SSI1_BASE, SystemClockFreq, SSI_FRF_MOTO_MODE_0, SSI_MODE_SLAVE, 1000000, 16);
SSIEnable(SSI1_BASE);
SSIIntEnable(SSI1_BASE, SSI_RXFF | SSI_RXOR);
Following the RTOS documentation I then set up the HWI with this
Hwi_Params hwiParams;
Hwi_Handle SSI1Hwi;
Error_Block eb;
Hwi_Params_init(&hwiParams);
Error_init(&eb);
hwiParams.maskSetting = Hwi_MaskingOption_SELF;
SSI1Hwi = Hwi_create(50, SSI1Isr, &hwiParams, &eb);
if(SSI1Hwi == NULL)
System_printf("SSI1 Hwi create error\n");
The ISR...
Normally (using Tivaware and not in RTOS) at the top of my ISR I would have
uint32_t intFlags;
intFlags = SSIIntStatus(SSI1_BASE, true); //get flags
SSIIntClear(SSI1_BASE, intFlags); //clear flags
Then I would inspect intFlags to find out what caused the interrupt and act accordingly.
The RTOS documentation infers I should use
Hwi_clearInterrupt(50);
1) Is it OK to use the Tivaware functions for handling the interrupt flags as above?
2) If not how do I tell what caused the interrupt (rx, tx, rto, ror) if I use Hwi_clearInterrupt()?
Thanks,
Richard