NEC ELECTRONICS GLOBAL
nec electronics global
HOME
APPLICATIONS
PRODUCTS
TECHNOLOGY
SUPPORT
BUY ONLINE
NEWS & EVENTS
ABOUT US
header
GO
AdvancedParametric
SITE MAP CONTACT US

[CA850] General Compiler Information

Contents

    
FAQ-ID = CA850_Compiler-nnnn
0952: "W2172. constant out of range" is displayed at the minimum value of int (-2147483648).
0954: Can a program located in external ROM be copied to internal RAM and executed from internal RAM?
0976: Line numbers cannot be obtained correctly from output information when analysis is performed by setting "Use V850 preprocessor" on the [Cross reference] tab of a static performance analysis tool.
0978: A debug information generation option (-g) is specified for building with PM+, but breakpoints cannot be set with the debugger or simulator, and debugging cannot be executed.
0979: Does the hex converter for the V850 Microcontrollers have an option that sorts sections in the ascending order of addresses?
0982: How should an interrupt handler be described?
0986: Message "W4608. input files have different register mode. Use -rc option for more information." is displayed when an object file is compiled.
1009: Can 16-bit data be filled in an unused area by using the -U option of the hex850?
1011: Can a code of only a specific section be output when a HEX-format file is generated?
CA850_Compiler
-0952
"W2172. constant out of range" is displayed at the minimum value of int (-2147483648).
Q1
Message "W2172: constant out of range" is displayed at the minimum value of int (-2147483648).
A1
data = -2147483648;
This means "an expression that applies a unary − (minus) operator to 2147483648".

Therefore, the warning message is output because "2147483648" exceeds the range of signed int.

Taking this into consideration, limits.h sets as follows.
#define INT_MIN (-INT_MAX-1)
Use this macro name.


The above warning message is output because "-2147483648" is in the range of signed int and the possibility that it is not assumed that sign extension (signed int -> unsigned int) takes place during an operation is high.

For example, the value changes in the following case.
	signed int si;

	si = -2147483648 >> 1; /* Positive number */
	si = INT_MIN >> 1; /* Negative number */


Is this information useful for you ?
back to top  
(2006/08)

CA850_Compiler
-0954
Can a program located in external ROM be copied to internal RAM and executed from internal RAM?
Q1
Can a program located in external ROM be copied to internal RAM and executed from internal RAM?
A1
The relative value of each section and each symbol (TP, EP, GP) may be retained without problem during linking and after copying.

Note that some data are copied while others are not.

If a program is copied to internal RAM after reset and the program is not modified, use of a ROMization function is simpler.

The text section can be packed by romp850.

Is this information useful for you ?
back to top  
(2006/08)

CA850_Compiler
-0976
Line numbers cannot be obtained correctly from output information when analysis is performed by setting "Use V850 preprocessor" on the [Cross reference] tab of a static performance analysis tool.
Q1
Line numbers cannot be obtained correctly from output information when analysis is performed by setting "Use V850 preprocessor" on the [Cross reference] tab of a static performance analysis tool.

A1
The line numbers of the output information when "Use V850 preprocessor" is set may become illegal because comments are deleted or include file and lines are concatenated.
To prevent comments from being deleted, specify the −C option of the preprocessor.
Is this information useful for you ?
back to top  
(2006/08)

CA850_Compiler
-0978
A debug information generation option (-g) is specified for building with PM+, but breakpoints cannot be set with the debugger or simulator, and debugging cannot be executed.
Q1
A debug information generation option (-g) is specified for building with PM+, but breakpoints cannot be set with the debugger or simulator, and debugging cannot be executed.

A1
The CA850 does not output debug information to a location other than to a .text section.
Check if the symbol is allocated to a .text section.

Debug information on the following is not output either.
  • Section created by the .section pseudo instruction
  • Code in an assembly language source file specified by the .include/.binclude pseudo instruction
  • Code in macro defined by the .macro pseudo instruction
If the start or end of function definition is described in a separate source file by #include, the correct debug information cannot be obtained.
Is this information useful for you ?
back to top  
(2006/08)

CA850_Compiler
-0979
Does the hex converter for the V850 Microcontrollers have an option that sorts sections in the ascending order of addresses?
Q1
The object converter for the 78K Microcontrollers has an option (-R) that specifies sorting in order of object addresses.
Does the hex converter for the V850 Microcontrollers have an option that sorts sections in the ascending order of addresses?
A1
The -R option has been deleted from the CA850 V2.70 and later, and sections are sorted in the ascending order of addresses by default.
Therefore, the -R option does not need to be specified for the CA850.
Is this information useful for you ?
back to top  
(2006/08)

CA850_Compiler
-0982
How should an interrupt handler be described?
Q1
How should an interrupt handler be described?
A1
The CA850 specifies an interrupt handler by "#pragma interrupt command" and "__interrupt qualifier" (in the case of an ordinary interrupt), or "#pragma interrupt command" and "__multi_interrupt qualifier" (in the case of multiple interrupts).

Interrupt handler description examples are shown below.
Example 1: Non-maskable interrupt

#pragma interrupt NMI func1    /* Non-maskable interrupt */

__interrupt
void func1(void)
{
    :
}

Example 2: Multiple interrupts

#pragma interrupt INTP0 func2

__multi_interrupt               /* Multiple interrupt function specification */
void func2(void)
{
    :
}
Is this information useful for you ?
back to top  
(2006/08)

CA850_Compiler
-0986
Message "W4608. input files have different register mode. Use -rc option for more information." is displayed when an object file is compiled.
Q1
Message "W4608: input files have different register mode. Use -rc option for more information." is displayed when a source file is compiled.
A1
Object files of different register modes have probably been compiled together.

Check the register mode of each object file by using the -rc option.
If the -w option is also specified, the -rc option becomes invalid. Remove the -w option.

The following register modes can be specified.

    [C source]
    Specify the following options before compiling.
    32-register mode -reg32 (may be omitted)
    26-register mode -reg26
    22-register mode -reg22

    [Assembler source]
    Describe one of the followinsg pseudo instructions in the assembler source.
    32-register mode Nothing
    26-register mode .option reg_mode 7 7
    22-register mode .option reg_mode 5 5

Is this information useful for you ?
back to top  
(2006/08)

CA850_Compiler
-1009
Can 16-bit data be filled in an unused area by using the -U option of the hex850?
Q1
Can 16-bit data be filled in an unused area by using the -U option of the hex850?
A1
16-bit data can be filled in an unused area by using the -U option (such as -U0xfffe).

Note, however, that only 8-bit data can be filled if a CA850 version earlier than V2.70 is used.
Is this information useful for you ?
back to top  
(2006/08)

CA850_Compiler
-1011
Can a code of only a specific section be output when a HEX-format file is generated?
Q1
Can a code of only a specific section be output when a HEX-format file is generated?
A1
The code of only a specified section can be output by specifying the -l option with hex converter hex850.
Is this information useful for you ?
back to top  
(2006/08)









































 LEGAL  RSS Feeds       © 1995-2008  NEC Electronics Corporation