 |
|
 |
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 "$"
- 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
- 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
- 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.
|
 |