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.

Nested HWI on a C6748

Other Parts Discussed in Thread: SYSBIOS

CCS 4.2.3.00004

SYS/BIOS 6.31.04.27

TMSC6748

 

My system has a number of HWI's configured.

 

I've notice that my HWI handlers are getting interrupted by lower priority hardware interrupts, i.e. the HWI handler for HWI4 is being interrupted by an HWI12 event.

The SYS/BIOS documentation states that the HWI masking option of MaskingOption_LOWER to mask lower priority HWI's is not available.

 

How do I properly interact with SYS/BIOS to hold off lower priority HWI's while servicing a higher priority HWI?

 

I could probably call Hwi_disableIER in my HWI handlers, but this leaves a hole between the time when the SYS/BIOS re-enables the HWI's and the time when I can disable them.

 

Thanks,

  Peter Steinberg

  • Not all targets and devices support the MaskingOption_LOWER maskSetting. The TMSC6478 is one of those devices that does NOT.

    There are other masking options for the 6x type devices that can achieve somewhat similar behavior.

    The default maskSetting: "MaskingOption_SELF", disables only the interrupt under service and allows ANY other interrupt to nest it.

    Another maskSetting: "MaskingOption_ALL", disables ALL interrupts while the current interrupt is being serviced.

    If you want to only allow SPECIFIC interrupts to nest the current interrupt, you can use the "MaskingOption_BITMASK". This maskSetting, combined with the C6x-specific disableMask and restoreMask instance configuration parameters allow you to individually define which interrupts are enabled while your ISR is running.

    See the CDOC for the ti.sysbios.family.c64p Hwi module for details of the disableMask and enableMask config parameters.

     

    Alan