OS_IncDI() before embOS initialization

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • OS_IncDI() before embOS initialization

    Some of the examples in the embOS_Generic.pdf manual call OS_IncDI() before doing anything else in main(). But some do not.

    In none of these example snippets is there a all to either OS_DecRI() or OS_EI() - I assume this happens in one of the subsequent initialization functions (OS_InitKern(), OS_InitHW(), or OS_Start()) and that it's performed unconditionally - not by decrementing the counter and enabling if it reaches 0.

    Could I get clarification on whether or not a call to OS_IncDI() is necessary and where/how interrupts do get enabled? I'd prefer not to rely on 'it works for me'.

    Thanks.
  • Hello Michael,

    because we cannot be sure that interrupts are disabled before main (e.g. some startup codes enables interrupts) we disable interrupts as first thing in main() with OS_IncDI().
    The interrupts are enabled in OS_Start(), so no OS_DecRI() is necessary there. The examples without OS_IncDI() in embOS generic documentation are older ones, we will have to update them.

    Regards,
    Til
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.