 |
|
 |
RENESAS TOOL NEWS on May 1, 2004: RSO-M3T-NC30WA-040501D
A Note on Using C-Compiler Package
M3T-NC30WA V.5.30 Release 1
|
Please take note of the following problem in using the M3T-NC30WA V.5.30 Release 1 C-compiler package for the M16C/60,
M16C/30, M16C/Tiny, M16C/20, M16C/10, and R8C/Tiny series MCUs:
- On linking the _init routine
- Description
When the M3T-NC30WA is upgraded from V.5.20 Release 1 to V.5.30 Release 1,
the _init routine is linked in some cases. On the other hand, the routine
already linked in V.5.20 Release 1 may be lost in the upgrade.
This reason is that the assemble conditions of the two versions for
calling the _init routine contained in the ncrt0.a30 startup file of
the versions are different from each other as follows:
if __STANDARD_IO__ != 1 in V.5.20 Release 1
if __STANDARD_IO__ == 1 in V.5.30 Release 1
- Conditions
This problem occurs if any of the following conditions is satisfied as a compiling environment:
| (1) | The M3T-NC30WA V.5.30 Release 1 has inherited a project created by the integrated development environment, High-performance Embedded Workshop or TM, or make environment in V.5.20 Release 1. |
| (2) | Though a new project has been created by the High-performance Embedded Workshop in V.5.30 Release 1, the startup file of V.5.20 Release 1 is used. |
| (3) | When batch files are used to generate the system, the startup file of V.5.30 Release 1 is assembled using batch files containing assemble options for V.5.20 Release 1. |
- Solutions of the Problem
First, change the expression "if __STANDARD_IO__ != 1" to the one
"if __STANDARD_IO__ == 1."
Then, make changes to the settings of your compiling environment as follows:
| (1) |
In the TM
| (a) |
When you don't need to link the _init routine:
| i) |
Select an option macro AFLAGS in the Option Browser dialog box,
and click the Edit button to open the Options dialog box. |
| ii) |
If the parameter "__STANDARD_IO__=1" of the -D assembler
option appears in the Options dialog box, select -D and click the Parameters button. |
| iii) |
You will see the Parameter Strings text box; then delete
the __STANDARD_IO__=1 parameter in this text box. |
|
| (b) |
When you need to link the _init routine:
| i) |
Select an option macro AFLAGS in the Option Browser dialog box,
and click the Edit button to open the Options dialog box. |
| ii) |
In the Options dialog box, select the -D assembler option and click the Parameters button. |
| iii) |
You will see the Parameter Strings text box; then type
the __STANDARD_IO__=1 parameter in this text box. |
|
|
| (2) |
In the High-performance Embedded Workshop
| (a) |
When you don't need to link the _init routine:
| i) |
Click the Assembly tab on the Renesas M16C Standard Toolchain dialog box;
then select "Source" and "Defines"
in the Category and the Show entries for drop-down list boxes respectively. |
| ii) |
If the check box in front of the "[-D__STANDARD_IO__=1]
Enable initialization for standard &I/O library." string has been checked, uncheck it. |
|
| (b) |
When you need to link the _init routine:
| i) |
Click the Assembly tab on the Renesas M16C Standard Toolchain dialog box;
then select "Source" and "Defines"
in the Category and Show entries for drop-down list boxes respectively. |
| ii) |
Check the check box in front of the "[-D__STANDARD_IO__=1] Enable initialization for standard &I/O library." string. |
|
|
| (3) |
With the TM or High-performance Embedded Workshop not used
| (a) |
When you don't need to link the _init routine,
delete the switch of -D__STANDARD_IO__=1 added to the assembler option if the switch is used. |
| (b) |
When you need to link the _init routine, add the switch of -D__STANDARD_IO__=1 to the assembler option. |
|
|
 |