Post Go back to editing

Interrupt priority is not changed on ADSP-SC835 SHARC-FX DSP processor

Category: Software
Product Number: ADSP-SC835
Software Version: CCES 3.0.2

Dear all,

in my software the TWI communication is always distorted, when the processor calculation load on my ADSP-SC835 SHARC-FX DSP gets to high in my audio interrupt service routine of the SPORT audio interface.

I try to change the interrupt priority on a ADSP-SC835 SHARC-FX DSP by using the adi_sec_XXX() functions for the SEC interrupt services. The "migration guide for SHARC+" tells me 

"The SEC interrupt service (adi_sec) will also be implemented for SHARC-FX, but is not yet available."

But the adi_sec_XXX() C functions are already available. So I tried to change the interrrupt priority of the TWI interface and the SPORT interface by the following code:

ADI_SEC_RESULT initInterrupts(void)
{
  ADI_SEC_RESULT result = adi_sec_SetPriorityLevels(ADI_SEC_CORE_0, ADI_SEC_256_PRIORITY_LEVELS);
  if (result)
  {
    printf("ERROR in adi_sec_SetPriorityLevels: %i\n", result);
    return result;
  }
  int curLevel = 0;
  result += adi_sec_SetPriority(INTR_TWI0_DATA,           curLevel); curLevel++;
  result += adi_sec_SetPriority(INTR_SPORT0_A_DMA,        curLevel); curLevel++;
  result += adi_sec_SetPriority(INTR_SPORT0_A_STAT,       curLevel); curLevel++;
  if (result) {
    printf("ERROR in adi_sec_SetPriority: %i\n", result);
    return result;
  }
  return ADI_SEC_SUCCESS;
}

But the code doesn't change the interrupt priority at all. The TWI communcation still crashed with to much load in the audio processing interrupt service routine. I see no change, in the behavior. Is the adi_sec really not supported? What do I  do wrong?

Best regards

Michael

Thread Notes

Parents Reply Children
No Data