Operating Precautions Embedded Workbench for RL78 V2.xx

Operating Precautions Embedded Workbench for RL78 V2.xx
Customer Notification
EWRL78 V2.xx
Embedded Workbench® for RL78 V2.xx
Operating Precautions
Y-IAR-EWRL78-FULL-MOBILE
Y-IAR-EWRL78-FULL
www.renesas.com
Document No. R20UT3407ED0109
Date Published: February 2016
Notice
1.
All information included in this document is current as of the date this document is issued. Such
information, however, is subject to change without any prior notice. Before purchasing or using any
Renesas Electronics products listed herein, please confirm the latest product information with a Renesas
Electronics sales office. Also, please pay regular and careful attention to additional and different
information to be disclosed by Renesas Electronics such as that disclosed through our website.
2.
Renesas Electronics does not assume any liability for infringement of patents, copyrights, or other
intellectual property rights of third parties by or arising from the use of Renesas Electronics products or
technical information described in this document. No license, express, implied or otherwise, is granted
hereby under any patents, copyrights or other intellectual property rights of Renesas Electronics or
others.
3.
You should not alter, modify, copy, or otherwise misappropriate any Renesas Electronics product,
whether in whole or in part.
4.
Descriptions of circuits, software and other related information in this document are provided only to
illustrate the operation of semiconductor products and application examples. You are fully responsible
for the incorporation of these circuits, software, and information in the design of your equipment.
Renesas Electronics assumes no responsibility for any losses incurred by you or third parties arising
from the use of these circuits, software, or information.
5.
When exporting the products or technology described in this document, you should comply with the
applicable export control laws and regulations and follow the procedures required by such laws and
regulations. You should not use Renesas Electronics products or the technology described in this
document for any purpose relating to military applications or use by the military, including but not limited
to the development of weapons of mass destruction. Renesas Electronics products and technology may
not be used for or incorporated into any products or systems whose manufacture, use, or sale is
prohibited under any applicable domestic or foreign laws or regulations.
6.
Renesas Electronics has used reasonable care in preparing the information included in this document,
but Renesas Electronics does not warrant that such information is error free. Renesas Electronics
assumes no liability whatsoever for any damages incurred by you resulting from errors in or omissions
from the information included herein.
7.
Renesas Electronics products are classified according to the following three quality grades: “Standard”,
“High Quality”, and “Specific”. The recommended applications for each Renesas Electronics product
depends on the product’s quality grade, as indicated below. You must check the quality grade of each
Renesas Electronics product before using it in a particular application. You may not use any Renesas
Electronics product for any application categorized as “Specific” without the prior written consent of
Renesas Electronics. Further, you may not use any Renesas Electronics product for any application for
which it is not intended without the prior written consent of Renesas Electronics. Renesas Electronics
shall not be in any way liable for any damages or losses incurred by you or third parties arising from the
use of any Renesas Electronics product for an application categorized as “Specific” or for which the
product is not intended where you have failed to obtain the prior written consent of Renesas Electronics.
The quality grade of each Renesas Electronics product is “Standard” unless otherwise expressly
specified in a Renesas Electronics data sheets or data books, etc.
“Standard”:
Computers; office equipment; communications equipment; test and measurement
equipment; audio and visual equipment; home electronic appliances; machine tools; personal electronic
equipment; and industrial robots.
“High Quality”: Transportation equipment (automobiles, trains, ships, etc.); traffic control systems; antidisaster systems; anti- crime systems; safety equipment; and medical equipment not specifically
designed for life support.
“Specific”:
Aircraft; aerospace equipment; submersible repeaters; nuclear reactor control systems;
medical equipment or systems for life support (e.g. artificial life support devices or systems), surgical
implantations, or healthcare intervention (e.g. excision, etc.), and any other applications or purposes that
pose a direct threat to human life.
8.
You should use the Renesas Electronics products described in this document within the range specified
by Renesas Electronics, especially with respect to the maximum rating, operating supply voltage range,
movement power voltage range, heat radiation characteristics, installation and other product
characteristics. Renesas Electronics shall have no liability for malfunctions or damages arising out of the
use of Renesas Electronics products beyond such specified ranges.
9.
Although Renesas Electronics endeavors to improve the quality and reliability of its products,
semiconductor products have specific characteristics such as the occurrence of failure at a certain rate
and malfunctions under certain use conditions. Further, Renesas Electronics products are not subject to
radiation resistance design. Please be sure to implement safety measures to guard them against the
possibility of physical injury, and injury or damage caused by fire in the event of the failure of a Renesas
Electronics product, such as safety design for hardware and software including but not limited to
redundancy, fire control and malfunction prevention, appropriate treatment for aging degradation or any
other appropriate measures. Because the evaluation of microcomputer software alone is very difficult,
please evaluate the safety of the final products or system manufactured by you.
Customer Notification R20UT3407ED0109
2
10.
Please contact a Renesas Electronics sales office for details as to environmental matters such as the
environmental compatibility of each Renesas Electronics product. Please use Renesas Electronics
products in compliance with all applicable laws and regulations that regulate the inclusion or use of
controlled substances, including without limitation, the EU RoHS Directive. Renesas Electronics
assumes no liability for damages or losses occurring as a result of your noncompliance with applicable
laws and regulations.
11.
This document may not be reproduced or duplicated, in any form, in whole or in part, without prior written
consent of Renesas Electronics.
12.
Please contact a Renesas Electronics sales office if you have any questions regarding the information
contained in this document or Renesas Electronics products, or if you have any other inquiries.
(Note 1) “Renesas Electronics” as used in this document means Renesas Electronics Corporation and also
includes its majority- owned subsidiaries.
(Note 2) “Renesas Electronics product(s)” means any product developed or manufactured by or for Renesas
Electronics.
Customer Notification R20UT3407ED0109
3
Table of Contents
A)
Table of Operating Precautions for the IDE EWRL78 ......................................................................5
B)
Table of Operating Precautions for the Assembler ARL78 ..............................................................5
C)
Table of Operating Precautions for C/C++ Compiler ICCRL78 .......................................................6
D)
Table of Operating Precautions for the Linker ILINKRL78 and ELF-Tools ......................................6
E)
Table of Operating Precautions for Debugger C-SPY .....................................................................7
F)
Description of Operating Precautions for the IDE EWRL78.............................................................8
G)
Description of Operating Precautions for the Assembler ARL78 .....................................................9
H)
Description of Operating Precautions for the C/C++ Compiler ICCRL78 ......................................10
I)
Description of Operating Precautions for Linker ILINKRL78 and ELF-Tools .................................15
J)
Description of Operating Precautions for Debugger C-SPY ..........................................................18
K)
Valid Specification ..........................................................................................................................19
L)
Revision ..........................................................................................................................................20
Customer Notification R20UT3407ED0109
4
Operating Precautions for EWRL78
A) Table of Operating Precautions for the IDE EWRL78
EWRL78
No.
Outline
: Applicable
B)
: Not applicable
7.2.2.3718
Version
- : Not checked
Table of Operating Precautions for the Assembler ARL78
ARL78
Version
No.
Outline
2.10.1
2.10.2
2.10.3
2.10.4
2.20.1
B1
RSEG Directives cannot be used in Macro
Definitions





B2
Assembler File must contain at least one
Directive





: Applicable
: Not applicable
- : Not checked
Customer Notification R20UT3407ED0109
5
Operating Precautions for EWRL78
C) Table of Operating Precautions for C/C++ Compiler ICCRL78
ICCRL78
2.10.2
2.10.3
2.10.4
2.20.1
Outline
2.10.1
No.
C1
Internal Compiler Error: Stack Overflow





C2
Internal Compiler Error: Size mismatch





C3
Internal Compiler Error: Bad Operator





C4
Scratch Registers are not saved in Interrupt
Service Routine





C5
Internal Compiler Error: Illegal State





C6
Wrong Code may generated for Instructions
using Operand imm[BC]





Version
: Applicable
: Not applicable
- : Not checked
D) Table of Operating Precautions for the Linker ILINKRL78 and ELF-Tools
ILINKRL78 and ELF Tools
Version
2.20.1
2.10.4
2.10.3
2.10.1
No.
Outline
D1
Runtime Model Conflict using far RuntimeLibrary-Calls




D2
Area in ROM marked as read-write-data in
MAP-File




D3
Routines for HW-Multiplier/Division Unit don’t
support far runtime library calls




: Applicable
: Not applicable
- : Not checked
Customer Notification R20UT3407ED0109
6
Operating Precautions for EWRL78
E) Table of Operating Precautions for Debugger C-SPY
C-SPY
Version
2.10.1
2.10.2
2.10.3
E1
E1 C-SPY Driver: Debug Session closed after
Error 'Flash macro service ROM accessed or
stepped in'





E2
The C-SPY system macro __setLogBreak()
does not work for emulators





E3
IECUBE C-SPY Driver: Wrong average timer
results





: Not applicable
2.20.1
Outline
: Applicable
2.10.4
No.
- : Not checked
Customer Notification R20UT3407ED0109
7
Operating Precautions for EWRL78
F) Description of Operating Precautions for the IDE EWRL78
No. A1
IAR Reference
Details
Workaround
Customer Notification R20UT3407ED0109
8
Operating Precautions for EWRL78
G) Description of Operating Precautions for the Assembler ARL78
No. B1
RSEG Directives cannot be used in Macro Definitions
Details
The assembler calculates a wrong relative jump-distance if the RSEG directive is used within a
macro definition:
Example
myDummyMacro MACRO
RSEG
CODE:CODE
NOP
ENDM
Workaround
Don’t use the RSEG directive in macro definitions. The used code-segment must be defined in
the code where the macro is expanded to.
No. B2
Assembler File must contain at least one Directive
Details
An assembler module without any assembler directive causes the following error message:
Error[As074]: Each file must contain at least one directive
Example
#if PLATFORM == RL78
; section without directive
#else
; section without directive
#endif
Workaround
Please use the END directive:
#if PLATFORM == RL78
; section code
END
#else
; section code
END
#endif
Customer Notification R20UT3407ED0109
9
Operating Precautions for EWRL78
H) Description of Operating Precautions for the C/C++ Compiler ICCRL78
No. C1
Internal Compiler Error: Stack Overflow
IAR Reference: EW24353
Details
Very deep nestlings of structure declarations, parenthesis or if-else statements, may generate a
stack overflow error in the compiler.
Internal Error:
[CoreUtil/General]: Stack overflow (0xXXXXXXXX) at xxxxxxxx
Examples
1)
#define
#define
#define
#define
#define
#define
#define
#define
LBR1
LBR2
LBR3
LBR4
RBR1
RBR2
RBR3
RBR4
( ( ( ( (
LBR1 LBR1
LBR2 LBR2
LBR3 LBR3
) ) ) ) )
RBR1 RBR1
RBR2 RBR2
RBR3 RBR3
( ( ( ( (
LBR1 LBR1
LBR2 LBR2
LBR3 LBR3
) ) ) ) )
RBR1 RBR1
RBR2 RBR2
RBR3 RBR3
LBR1 LBR1 LBR1 LBR1 LBR1 LBR1
LBR2 LBR2 LBR2 LBR2 LBR2 LBR2
LBR3 LBR3 LBR3 LBR3 LBR3 LBR3
RBR1 RBR1 RBR1 RBR1 RBR1 RBR1
RBR2 RBR2 RBR2 RBR2 RBR2 RBR2
RBR3 RBR3 RBR3 RBR3 RBR3 RBR3
int q5_var = LBR4 0 RBR4;
2)
#define
#define
#define
#define
ONE
TEN
HUN
THOU
else if
ONE ONE
TEN TEN
HUN HUN
(0)
ONE
TEN
HUN
{ }
ONE ONE ONE ONE ONE ONE ONE
TEN TEN TEN TEN TEN TEN TEN
HUN HUN HUN HUN HUN HUN HUN
void foo()
{
if (0) { }
THOU THOU THOU THOU THOU THOU THOU THOU THOU THOU THOU
}
Workaround
Avoid such code, this will be listed as a known problem.
Customer Notification R20UT3407ED0109
10
Operating Precautions for EWRL78
No. C2
Internal Compiler Error: Size mismatch
IAR Reference: EW25533
Details
Reading a 16-bit SFR that is located between 0xFFF00-0xFFF1F might generate an internal
error :
Internal error:
[CoreUtil/General]: Size mismatch for “
MOVW HL, S:0xFFFxx
cycle, inserted as 3 bytes, assembled as 2 bytes.
;; 1
Examples
#include <ior5f10ppj.h>
unsigned short v1[10];
unsigned char v2;
void test(void)
{
v1[v2] = ADCR;
}
Workaround
Use a static temporary variable:
void test(void)
{
static unsigned short dummy;
dummy = ADCR;
v1[v2] = dummy;
}
The issue will be fixed in future update.
Customer Notification R20UT3407ED0109
11
Operating Precautions for EWRL78
No. C3
Internal Compiler Error: Bad Operator
IAR Reference: EW25541
Details
In case of using explicit double casting, an internal compiler error occurs:
Internal error:
[GoBinaryExprCvm::Evaluate]: bad operator
Example
void test ( void )
{
(void)(unsigned short int)( (*(unsigned short *)0xF06E6) );
}
Workaround
Either remove the (void) cast or make the pointer cast volatile:
(void)(unsigned short int)( (*(unsigned short volatile *)0xF06E6) )
No. C4
Scratch Registers are not saved in Interrupt Service Routine
IAR Reference: EW25593
Details
Interrupt service routines using the new Renesas calling convention (v2) fail to save the scratch
registers. This occurs independently of the used optimization.
Example
__far const unsigned char
data[] = { 0xfa, 0xfa, 0xfa};
unsigned long v1;
#pragma vector = 0x7A
__interrupt void isr01(void)
{
v1 = (unsigned long)&data[0];
}
Workaround
Change the calling convention of the for the interrupt service routine:
__v1_call __interrupt void isr01(void)
{
v1 = (unsigned long)&data[0];
}
Customer Notification R20UT3407ED0109
12
Operating Precautions for EWRL78
No. C5
Internal Compiler Error: Illegal State
IAR Reference: EW25713
Details
Far pointers that have a constant value (known at compile time) that points into the short
address area can generate an internal error.
Example
typedef union {
struct {
unsigned char
p10
:1;
unsigned char
p11
:1;
unsigned char
reserve1:6;
} ;
unsigned char
all;
} SFRDEF;
typedef union {
SFRDEF byte;
} SFR;
__far SFR sfr @(0xFFF01) ;
void test( void )
{
sfr.byte.p10
sfr.byte.all
}
= 0;
= 0;
Workaround
Avoid absolute addressing by using a user defined data segment:
#pragma dataseg= __saddr MySeg
__far SFR sfr;
#pragma dataseg= default
Customer Notification R20UT3407ED0109
13
Operating Precautions for EWRL78
No. C6
Wrong Code may generated for Instructions using Operand imm[BC]
IAR Reference: EW25763
Details
Instructions that have one operand of type imm[BC] can in some cases generate wrong
offsets to BC if the offset is a constant (not a label).
Example
#define D (*((volatile T __near *)(0x1234)))
typedef struct {
unsigned char c[10];
} T;
int i = 0;
int j;
void test( void )
{
j
= D.c[i];
// wrong generated code:
// 000004 49 3412
MOV
D.c[i] = j;
// correct code:
// 000013 48 1234
MOV
A, (0x1234)[BC]
;; 1 cycle
(0x1234)[BC], A
;; 1 cycle
}
Workaround
None.
Customer Notification R20UT3407ED0109
14
Operating Precautions for EWRL78
I) Description of Operating Precautions for Linker ILINKRL78 and ELF-Tools
No. D1
Runtime Model Conflict using far Runtime-Library-Calls
IAR Reference EW25570
Details
In case of using far runtime-library-calls, the following linker error occurs as a matching runtime
library variant is missing:
Error[Li009]: runtime model conflict: Module
__dbg_xxexit.o(dbgrl78fnf23d.a) specifies that '__far_rt_calls' must be
'false', but module <xxxxx.o> has the value 'true'
Using far runtime library calls is only necessary, if the runtime library itself shall be executed in
RAM. The feature can be enabled in the GUI or by compiler command line option
"--generate_far_runtime_library_calls" :
Workaround
Use a customer specific runtime library build with option ‘Using far runtime library calls ‘enabled.
Customer Notification R20UT3407ED0109
15
Operating Precautions for EWRL78
No. D2
Area in ROM marked as read-write-data in MAP File
IAR Reference EW25758
Details
Although located in ROM memory-areas reserved for debugging are included as "read-write"
memory in the linker map file module summary.
In the following sample the block OCD_ROM_AREA is listed as ‘rw data’ in the line ‘Linker
created’:
*******************************************************************************
*** MODULE SUMMARY
***
Module
ro code
ro data
rw data
ro data rw data
(abs)
(abs)
------------ ------- ------- ------- ------C:\...\QB-R5F10BMG-TB\startupsampleqb-r5f10bmg-tb\Debug\Obj: [1]
globals.o
8
interrupt.o
24
6
low_level_initialization.o
137
14
41
main.o
119
1
----------------------------------------------------------------------Total:
280
8
20
42
command line: [2]
----------------------------------------------------------------------Total:
dbgrl78nnf23nd.a: [3]
__dbg_break.o
3
__dbg_xxexit.o
15
----------------------------------------------------------------------Total:
18
dlrl78nnf23n.a: [4]
cexit.o
5
cstartup.o
56
data_init.o
66
exit.o
3
huge_zero_init.o
107
----------------------------------------------------------------------Total:
237
Linker created
24
640
--------------------------------------------------------------------------Grand Total:
535
24
648
20
42
Workaround
None. Will be fixed in next update
No. D3
Routines for HW-Multiplier/Division Unit don’t support far runtime library calls
IAR Reference EW25784
Details
The assembler routines for the Hardware Multiplier/Division Unit don’t support far runtime
library calls and therefore cause a linker error:
Error[Lp002]: relocation failed: value out of range or illegal: ...
with
>place at address mem:0x20000
{ ro section .text object LibReplacement.o };
Workaround
None. Will be fixed in next update
Customer Notification R20UT3407ED0109
16
Operating Precautions for EWRL78
Customer Notification R20UT3407ED0109
17
Operating Precautions for EWRL78
J) Description of Operating Precautions for Debugger C-SPY
No. E1
E1 C-SPY Driver: Debug Session closed after Error 'Flash macro service ROM accessed
or stepped in'
IAR Reference EW25668
Details
The debug session is closed after error 'Flash macro service ROM accessed or stepped in'
occurs. The error occurs, if a breakpoint is defined at a jump instruction while the Flash
sequencer is active due to usage of a Renesas Flash Libraries. As the sequencer works
asynchrony to program execution, the sequencer status is unknown to the user.
Due to the breakpoint C-SPY will use a step command to proceed even if the user command is
"Go".
Workaround
Don’t place a breakpoint on jump instructions while the Flash sequencer is active.
No. E2
The C-SPY system macro __setLogBreak() does not work for emulators
IAR Reference EW25840
Details
The C-SPY system macro __setLogBreak() does not work for emulators like E1, IECUBE etc.
It can only be used via the Simulator.
Workaround
None.
No. E3
IECUBE C-SPY Driver: Wrong average timer results
IAR Reference EW25913
Details
In some cases it might happen that the timer average result of a conditional measurement is
wrong.
Example:
Timer 1: Pass count: 369. Average pass time: 5 msec. (total cycles: 239540413, average
cycles: 649161, min cycles: 12288621, max cycles: 12288686, rate: 8.33333 nsec/cycle).
Workaround
None. Please ignore the average result and use the min and max values for the investigation.
Customer Notification R20UT3407ED0109
18
Operating Precautions for EWRL78
K) Valid Specification
Item
Date published
Document No.
Document Title
1
June 2015
UIDERL78_I-2
IAR Embedded Workbench
IDE Project Management and Building Guide
2
May 2015
DRL78-I-2
IAR Embedded Workbench
C/C++ Development Guide Compiling and Linking for RL78
3
April 2015
ARL78_I-1
IAR Embedded Workbench
Assembler User Guide for RL78
4
April 2015
UCSRL78_I-1
IAR Embedded Workbench
C-SPY Debugging Guide for RL78
5
June 2015
MUBROFELFRL78_I.1
IAR Embedded Workbench
Migrating from UBROF to ELF/DWARF
6
January 2011
EWMISRAC1998-4
IAR Embedded Workbench
MISRA C 1998 Reference Guide
7
January 2011
EWMISRAC2004-3
IAR Embedded Workbench
MISRA C 2004 Reference Guide
Customer Notification R20UT3407ED0109
19
Operating Precautions for EWRL78
L) Revision
Edition
Date published
Document No.
Comment
1
18-06-2015
R20UT3407ED0100
Initial release.
2
29-06-2015
R20UT3407ED0101
Item C2 added.
3
15-07-2015
R20UT3407ED0102
Compiler and Assembler update to V2.10.2, items
C3 and D1 added.
4
21-08-2015
R20UT3407ED0103
Update V2.10.3
Item C4 added.
5
15-09-2015
R20UT3407ED0104
Item E1 added.
6
20-10-2015
R20UT3407ED0105
Items C5 and D2 added.
7
22-10-2015
R20UT3407ED0106
Item C6 added
8
16-11-2015
R20UT3407ED0107
Update EWRL78 V2.10.4
Item D3 added
9
21-12-2015
R20UT3407ED0108
Update EWRL78 V2.20.1
Item C6 sample updated
Item E2 added.
10
01-02-2016
R20UT3407ED0109
Item E3 added.
Before using this material, please visit our website to confirm using the most current document available:
Current version of this document
In case of any technical question related to the Embedded Workbench for RL78, please feel free to contact
the Renesas Software-Tool-Support Team.
Customer Notification R20UT3407ED0109
20
R20UT3407ED0109
February 2016
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertising