Tool News
 
 
 

Tool News

Products Info
Downloads
Tools FAQs
MAEC TOOL NEWS: MAECT-M3T-NC308WA-020116D

Notes on
M3T-NC308WA, M3T-NC30WA, M3T-NC79WA
AS308, AS30, and AS79

Please take note of the following problems in using C compilers (with an assembler and integrated development environment) M3T-NC308WA, M3T-NC30WA, and M3T-NC79WA; and relocatable assemblers AS308, AS30, and AS79:
  • On directive command ".INCLUDE"
  • On MAX instructions generated with an unnecessary comma attached
  • On describing location symbol "$"


  1. Problem on Directive Command ".INCLUDE"
    1.1 Products and Versions Concerned
    C compiler for the M16C/80 series MCUs : M3T-NC308WA V.1.00 Release 1 -- V.3.10 Release 3
    C compiler for the M16C/60 and M16C/20 series MCUs : M3T-NC30WA V.3.10 Release 1 -- V.4.00 Release 2
    C compiler for the 7900 series MCUs : M3T-NC79WA V.3.00 Release 1 -- V.4.10 Release 1

    Relocatable assembler for the M16C/80 series MCUs : AS308 V.1.00 Release 1 -- V.2.00 Release 1
    Relocatable assembler for the M16C/60 and M16C/20 series MCUs : AS30 V.3.10 Release 1 -- V.3.20 Release 1
    Relocatable assembler for the 7900 series MCUs : AS79 V.3.00 Release 1 -- V.3.20 Release 1

    1.2 Description
    When a source file is assembled, the error saying "Can't open include file" may arise.

    1.3 Conditions
    This problem occurs if the following two conditions are satisfied:
    (1) The name of an include file specified by a relative pathname is assigned to the operand of an ".INCLUDE" directive command.
    (2) The source file resides in a directory different from the current directory or the one where the include file has been saved.

    1.4 Examples
    (1) Source file
    --------------------------------------------------------------------
           :
      .include inc\b.inc          ; Condition (1)
           :
    --------------------------------------------------------------------
    
    (2) Directory tree structure and files
    --------------------------------------------------------------------
      \project-----\work
                |
                 ---\src------a.axx (Source file)       ; Condition (2)
                          |
                           ----\inc----b.inc            ; Condition (2)
                                      (Include file)
    --------------------------------------------------------------------
    
    (3) Assembling (\project\work assumed to be the current directory)
    --------------------------------------------------------------------
       >asxx ..\src\a.axx
            :
       Can't open include file    ; An error arises.
    --------------------------------------------------------------------
    1.5 Workaround
    Place a ".\" in front of the operand of an ".INCLUDE" directive command as ".\inc\b.inc".

    1.6 Schedule of Fixing the Problem
    We plan to fix this problem in our next release.



    Notes on M3T-NC308WA, M3T-NC30WA, M3T-NC79WA, AS308, AS30, and AS79
    MAECT-M3T-NC308WA-020116D

  2. Problem on MAX Instructions Generated with an Unnecessary Comma Attached
    2.1 Product and Versions Concerned
    C compiler for the M16C/80 series MCUs : M3T-NC308WA V.3.10 Release 1 -- V.3.10 Release 3

    2.2 Description
    The compiler may generate code in which an unnecessary comma is attached to a MAX instruction. Assembling such code results in an error.

    2.3 Conditions
    This problem occurs if the following eight conditions are satisfied:
    (1) A function has an argument that is passed by a register (hereafter referred to simply as an argument).
    (2) In the function, either an auto variable or a register variable is declared (hereafter referred to simply as a variable).
    (3) The argument and the variable are any type of 16-bit signed integer each (of type short, signed short, int, or signed int).
    (4) In the function exists an if statement that contains such an controlling expression that evaluates argument i is less than variable j (i < j, or j > i in an expression).
    (5) The program statement executed if the controlling expression in (4) is TRUE is only the assignment of the variable to the argument.
    (6) The if statement in (4) has no else statement.
    (7) Any of the options, -O[1-5], -OR, and -OS, is used at compilation.
    (8) The objects of the argument and variable are assigned to registers as a result of optimization.

    2.4 Example
    -----------------------------------------------------------------------
    int limit;
    int func(int i)         /* Conditions (1) and (3) */
    {
        int j = limit;      /* Conditions (2) and (3) */
        if (i < j) {        /* Condition (4) */
            i = j;          /* Condition (5) */
        }                   /* Condition (6) */
        return i;
    }
    -----------------------------------------------------------------------
    2.5 Workaround
    Place a dummy asm function immediately before the line of the program statement executed if the controlling expression of the if statement is TRUE.
    -----------------------------------------------------------------------
          if (i < j) {
              asm();          /* asm(); placed */
              i = j;
          }
    -----------------------------------------------------------------------
    2.6 Schedule of Fixing the Problem
    We plan to fix this problem in our next release.



    Notes on M3T-NC308WA, M3T-NC30WA, M3T-NC79WA, AS308, AS30, and AS79
    MAECT-M3T-NC308WA-020116D

  3. Problem on Describing Location Symbol "$"
    3.1 Products and Versions Concerned
    C compiler for the 7900 series MCUs : M3T-NC79WA V.2.00 Release 1 -- V.4.10 Release 1
    Relocatable assembler for the 7900 series MCUs : AS79 V.2.00 Release 1 -- V.3.20 Release 1

    3.2 Description
    When the source file where location symbol "$" is described in the operand of an unconditional branch instruction (BRA) is assembled, AS79 is forced to terminate.

    3.3 Example
    --------------------------------------------------------------------
      .section  prg
       bra  $
      .end
    --------------------------------------------------------------------
    3.4 Workaround
    When describing location symbol "$" in the operand of an unconditional branch instruction, use BRAL, JMP, or JMPL as the instruction.

    3.5 Schedule of Fixing the Problem
    We plan to fix this problem in our next release.




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