Tool News
 
 
 

Tool News

Products Info
Downloads
Tools FAQs
RENESAS TOOL NEWS on December 1, 2005: RSO-M3T-ICC740-051201D

Notes on Using
the C Compiler Package M3T-ICC740

Please take note of the following problems in using the C compiler package M3T-ICC740, which are used for the 740 MCU family:
  • On handling interrupts
  • On calling undefined functions


  1. Versions Concerned
    The C compiler package M3T-ICC740 V.1.01 Release 00 and V.1.01 Release 01 (for the 740 family)


  2. Descriptions
    2.1   Problems on Handling Interrupts
    If a function called or to be called from an interrupt-handling function during interrupt service is called from another function, the warning message* shown below cannot be displayed at linking.
    (The message is displayed in V.1.00 Release 1 through V.1.00 Release 1B.)
    Warning[w16]: Function "name" in module (file) is called from two function trees (with roots name1 and name2 )
    *   The M3T-ICC740 statically places local variables (arguments and auto variables) of a function. So using such a function within both an interrupt-handling function and another one may corrupt local variables. If calls are made to such a function from both of the above-mentioned functions, the linker sends Warning[w16]. However, in the product concerned, the linker does not.

    Example:
    --------------------------------------------------------------------
    void func2( int );
    
    interrupt[2] void  intr_1(void)
    {
        func2( 2 );     /* If an interrupt generated while func1() is */
                        /* executing func2(), local variables of      */
                        /* func2() be corrupted after func2() returns */
                        /* from interrupt                             */
    }
    
    void func1( void )
    {
        func2( 1 );
    }
    
    void main( void )
    {
        func1();
    }
    --------------------------------------------------------------------
    Workaround:
    Don't use the same function within an interrupt-handling function and another one.

    2.2   Problem on Calling Undefined Functions
    Making a call to an undefined function does not display the warning message shown below at linking.
    (The message is displayed in V.1.00 Release 1 through V.1.00 Release 1B.)
    Error[e46:] Undefined external "external" referred in module (file)
    Example
    --------------------------------------------------------------------
    void func3( int );
    
    void main( void )
    {
        func3();        /* undefined function */
    }
    --------------------------------------------------------------------
    Workaround:
    If you need to call an undefined function, define it.


  3. Schedule of Fixing the Problems
    We have no plan to fix these problems. Therefore, please use workarounds described in the Tool News to avoid the problems.





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