C Compiler (Fcc911); D.1 C Compiler (Fcc911) - Fujitsu MB91F109 FR30 Hardware Manual

Fr30 series 32-bit microcontroller
Table of Contents

Advertisement

APPENDIX D Notes on Using Little Endian Areas
D.1

C Compiler (fcc911)

When the operations described below are performed for little endian areas from
programs in C, the results of the respective operations may be rendered uncertain.
• Allocating variables with initial values
• Assigning structures by referencing other structures
• Manipulating data other than character arrays with character string manipulation
functions
• Specifying the option -K lib when using a character string manipulation function
• Using the types double and long double
• Allocating a stack to a little endian area
Allocating Variables with Initial Values
Variables with initial values cannot be allocated to little endian areas.
The compiler has no function for creating the initial values of little endians. While variables can
be allocated to little endian areas, their initial values cannot be set during assignment.
Set the initial values at the beginning of the program.
[Example] When setting an initial value for the variable little_data of the little endian area
extern int little_data;
void little_init(void) {
little_data = Initial value;
}
void main(void) {
little_init();
}
Assigning Structures by Referencing Other Structures
When assigning structures by referencing other structures, the compiler selects the optimum
transfer method and performs a transfer for each byte, half-word, and word. If a structure is
defined by referencing a structure variable allocated to a little endian area and another allocated
to a non-little endian area, the correct result is not obtained.
Assign each structure member individually.
[Example]
endian area
struct tag { char c; int i; } normal_st;
extern struct tag little_st;
396
...
When assigning a structure to the structure variable little_st in the little

Advertisement

Table of Contents
loading

This manual is also suitable for:

Mb91f109

Table of Contents