This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello,
After entering in CAM diagnostic mode to set all CAM indexes at “occupied” state, to generate CAM full interrupt, the "EPC full" interrupt (VIM 124) is correctly generated in my program.
But set the corresponding bit in INTREQ3 (VIM) seems not enough to acquit the EPC pending interrupt.
Can you tell me which actions to add, to clear the "EPC full" flag in VIM ?
Best regards,
Hello,
The CPU can restore the contents of the CAM in diagnostic mode (the state before enabling diagnostic mode and filling up the CAM) and then clear the CAM_FULL and CAM_OVFLW (if set) status flags in the EPC Error Status Register (EPCERRSTAT) by writing 1s to the flags to be cleared. Then the interrupt flag in the VIM can be cleared by writing 1 to it.
Regards, Sunil
Thank you for your answer.
I so restored CAM content from address 0xFFFF0CA0 to 0xFFFF0D1C with values before enabling diagnostic mode.
Then cleared CAM_OVFLW bit, so EPCERRSTAT goes from 0x5 (at IT event) to 0x4.
But the interrupt is still pending (CAM INDEX can’t be written) and the VIM flag can’t be cleared.
Maybe something to do in another register ?
Best Regards,
Please clear both CAM_FULL and CAM_OVFLW flags by writing 0x5 to the EPCERRSTAT register. The interrupt request from EPC is generated on a CAM_FULL condition.
Regards, Sunil
Thank you for your help.
The problem is resolved.
CAM_FULL flag in EPCERRSTAT should be cleared immediatlely after CAM index restore, and before CAM content restore.
Best Regards,