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.

Need for --interrupt_threshold option needs to be better documented

After a lot of investigation I was surprised to discover that by default the C6x compiler generates unsafe code for real-time processing.  The --interrupt_threshold=1 (-mi) option needs to be specified to prevent low priority threads from disabling interrupts for prolonged periods.

I was mainly looking at information in http://processors.wiki.ti.com/index.php/Category:OMAPL1  I agree it's not ideally suited for that category, but that category does contain the -mv option.

I think it should be mentioned in http://processors.wiki.ti.com/index.php/Category:Compiler especially in http://processors.wiki.ti.com/index.php/C6000_Compiler:_Best_Options_for_Performance

 

  • You make a good point.  So I added this article to the Wiki http://processors.wiki.ti.com/index.php/Interrupts_Disabled_by_C6000_Compiler .  While I'm confident in what is there, I am also having it reviewed.  Once those reviews are done, I'll remove the Under Construction banner.

    Thanks and regards,

    -George

     

  • Thank you George for the wiki update.

    I believe the RTS needs to be rebuilt according to 2.12 Interrupt Flexibility Options (--interrupt_threshold Option) of the TMS320C6000 Optimizing Compiler v 6.1 User's Guide "RTS Library Files Are Not Built With the --interrupt_threshold Option."

    Due to this issue, a few related questions arose here.

    • Is there a design reason for the choice of default behaviour when -mi is not specified?
    • Is expecting real-time response to hardware interrupts an atypical use case?
    • Is all input to the DSP expected to arrive via DSP/Link from the ARM?
    • What about C6x DSPs not in OMAP?

    I would also suggest adding links to this page from other pages.

     

  • Christopher Cordahi said:
    Is there a design reason for the choice of default behaviour when -mi is not specified?

    This decision was made some 15 years ago.  Now it is deeply entrenched in make files, CCS project files, etc. the world over.  It cannot be changed.  The best thing to do now is learn how the option works, then employ it as you see fit.

    Christopher Cordahi said:
    Is expecting real-time response to hardware interrupts an atypical use case?

    No.

    Christopher Cordahi said:
    • Is all input to the DSP expected to arrive via DSP/Link from the ARM?
    • What about C6x DSPs not in OMAP?

    These are system related questions about which a compiler expert like me has no special knowledge.

    Thanks and regards,

    -George

     

  • Thanks again George for your reply.