Please note: We are aware of an issue affecting replies on the Arm Community forums, which may not be loading as expected.

We apologize for any inconvenience and appreciate your patience while we investigate and work to resolve the issue.

Thank you for your understanding.


This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Reentrant?

I rarely ask questions on this forum, but since I couldn't [easily] find it in the help-files, or on-line, I'm asking you guys.

I usually (like never) don't use the 'reentrant' pragma, but I think I may have to do that with a particular routine.

BUT I can't find the key-word that declares a function as reentrant. Am I missing something? Is there one for Keil's IDE tools? If so, what is its form? Can I get a link to the 'official' use of it?

Thanks in advance, and I need it asap because I need to pass this class and I don't want to really learn how to do this 'embedded' stuff anyway but the teacher keeps hounding me.

--Cpt. Vince Foster
2nd Cannon Place
Fort Marcy Park, VA

Parents
  • Ho Jack,

    You must be supremely proud that Vince is using your name for target practicing (as he demonstrated here:http://www.keil.com/forum/docs/thread14479.asp).

    :-)

    A quick quote:

    locked_on_1 = Get_Evil_Bad_Guy_Image( IR_CAMERA_1, &sardine_image.frame.current  );
    
     locked_on_2 = Get_Evil_Bad_Guy_Image( IR_CAMERA_2, &sprat_image.frame.current    );
    
     locked_on_3 = Get_Evil_Bad_Guy_Image( IR_CAMERA_3, &smoked_image.frame.current   );
    
     locked_on_4 = Get_Evil_Bad_Guy_Image( IR_CAMERA_3, &jack_image.frame.current     );
    
     lock_complete = ( (    ( locked_on_1 != FALSE )
                         && ( locked_on_2 != FALSE )
                         && ( locked_on_3 != FALSE )
                         && ( locked_on_4 != FALSE )
    
                       ) != FALSE
                     )
                         ?     // ternary = ( cond==TRUE )? TRUE : FALSE ;
    
                        TRUE   // TRUE == !FALSE, so TRUE goes here
    
                         :
    
                        FALSE
                     ; // end ternary, end assignment
    
     // if true, then bad things happen to bad guys...
     if( lock_complete != FALSE )
     {
        Enable( BAD_THINGS );
        ...
     }
     else
     {
        Disable( BAD_THINGS ); // just in case
     }
    
    

Reply
  • Ho Jack,

    You must be supremely proud that Vince is using your name for target practicing (as he demonstrated here:http://www.keil.com/forum/docs/thread14479.asp).

    :-)

    A quick quote:

    locked_on_1 = Get_Evil_Bad_Guy_Image( IR_CAMERA_1, &sardine_image.frame.current  );
    
     locked_on_2 = Get_Evil_Bad_Guy_Image( IR_CAMERA_2, &sprat_image.frame.current    );
    
     locked_on_3 = Get_Evil_Bad_Guy_Image( IR_CAMERA_3, &smoked_image.frame.current   );
    
     locked_on_4 = Get_Evil_Bad_Guy_Image( IR_CAMERA_3, &jack_image.frame.current     );
    
     lock_complete = ( (    ( locked_on_1 != FALSE )
                         && ( locked_on_2 != FALSE )
                         && ( locked_on_3 != FALSE )
                         && ( locked_on_4 != FALSE )
    
                       ) != FALSE
                     )
                         ?     // ternary = ( cond==TRUE )? TRUE : FALSE ;
    
                        TRUE   // TRUE == !FALSE, so TRUE goes here
    
                         :
    
                        FALSE
                     ; // end ternary, end assignment
    
     // if true, then bad things happen to bad guys...
     if( lock_complete != FALSE )
     {
        Enable( BAD_THINGS );
        ...
     }
     else
     {
        Disable( BAD_THINGS ); // just in case
     }
    
    

Children