Tool News
 
 
 

Tool News

Products Info
Downloads
Tools FAQs
MESC TOOL NEWS: MESCT-MR32R-990901D

MR32R Precaution

Please take note of the following problems in using real-time OS MR32R for the M32R family of microcomputers.


  1. Problem in Using the "set_flg" and "iset_flg" System Calls

    1.1 Versions concerned
    MR32R V.2.00 Release 1 -- V.3.00 Release 1
    ( Note that in MR32R V.3.10 Release 1 this problem has been fixed. )

    1.2 Conditions
    If the following three conditions are satisfied, issuing a "set_flg" or "iset_flg" system call could not cancel waiting states of the tasks that meet the wait conditions:

    (1) For an event flag with an ID, more than one task exists which is waiting for the conditions for the event flag to be set.
    (2) A "set_flg" or "iset_flg" system call is issued for the event flag in (1), and an interrupt is requested during the processing of the system call.
    (3) While the interrupt in (2) is being serviced, an "irel_wai" system call is issued for the task that is waiting for the conditions for the event flag in (1) to be met.

    1.3 Workaround
    Disable and enable any interrupt before and after the description of an "set_flg" or "iset_flg" system call, respectively.

         [Example]
          ----------------------------------------------------------------
         |  void task1(void)
         |  {
         |                  :
         |                  :
         |          asm(" mvfc      R0,PSW");        /*Interrupt disabled*/
         |          asm(" and3      R0,R0,#0xFFBF");
         |          asm(" mvtc      R0,PSW");
         |
         |          set_flg(ID_flg1,(UINT)0xff00ff00);
         |
         |          asm(" mvfc      R0,PSW");        /*Interrupt enabled*/
         |          asm(" or3       R0,R0,#0x0040");
         |          asm(" mvtc      R0,PSW");
         |                  :
         |                  :
         |  }
         |
          ----------------------------------------------------------------
    
    
  2. Problem in Using the "vras_fex" System Call

    2.1 Version concerned
    MR32R V.3.00 Release 1

    2.2 Description
    The "vras_fex" system call cannot be issued for the task where no exception handler is defined or the default exception handler only is defined.

    2.3 Workaround
    Issue the "vras_fex" system call after defining any of the exception handlers except the default one by using the "def_exc" system call. (Note that in MR32R V.3.10 Release 1, the "vras_fex" system call can be issued for the tasks where no exception handler is defined or the default exception handler only is defined. If this call is issued for the task where no exception handler is not defined, the default exception handler is invoked.)


  3. Problem in Using the "ref_alm" System Call

    3.1 Version concerned
    MR32R V.3.00 Release 1

    3.2 Description
    If the "ref_alm" system call is issued for the alarm handler that has already been invoked, 0 is not stored in "lfttim.ltime" of the packet that indicates the status of the handler.

    3.3 Workaround
    Please use MR32R V.3.10 Release 1 in which this problem has been fixed.




© 2008. Renesas Technology Corp., All rights reserved. Privacy | Legal