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.

Possible bug in driverlib IntPrioritySet() method?

Other Parts Discussed in Thread: CC3200

There seems to be a bug in the IntPrioritySet() method in driverlib. The NVIC interrupt priority register that is selected for modification is not the one corresponding to the ulInterrupt input parameter. For example, if  INT_UDMA (interrupt 62) is passed in, register PRI11 is modified instead of PRI15. PRI15 is the correct interrupt priority register for interrupt 62.

  • Hi Nuno,


    Why do you think PRI15 is correct one?

    Interrupt priority register calculated following way :
    Subtract 16 from interrupt (as initial 16 index represent system fault) and divide by 4. So in your case interrupt priority register will be (62 - 16)/4 = 11. so priority register will be PRI11.



    Regards,
    Aashish
  • Table 3-2 of the CC3200 TRM shows interrupt priority register PRI15 is used for interrupt 62. If you pass 62 as the interrupt number to this method is modifies PRI11. So either the code or the TRM is incorrect.

  • Hi Nuno,

    As Aashish pointed out there is a difference in the way the interrupts are number by TRM and the driverlib APIs.

    For Driverlib the macros use a linear way of number the interrupts and exceptions i.e. stating from 0-15 for Exception. And starting from 16 its peripheral interrupts.

    In CC3200 TRM there is no numbering given for Exception, it starts numbering the NVIC external interrupts (i.e. peripheral interrupts) from 0.

    So you see an offset of 16.


    Thanks and Regards,
    Praveen