RA78K
Contents
FAQ-ID = 78ra- nnnn
78ra -0001
|
An error occurs when the bit SFR name is used.
|
| Q1 |
The uPD780076 has special bit-unit registers such as "EGP" and "EGN",
but an error occurs when use of these registers with the assembler is attempted.
|
| A1 |
The introduction of the device's User's Manual explains
that register format bit numbers that are encircled can be used as is for the RA78K0,
but that bit numbers that are not encircled cannot be used for the RA78K0.
To reference these undefined bits, specify the bit number as "EGP.0".
Reference Document:
RA78K0 Assembler Package -- Language
|
78ra -0002
|
Multiple CSEG in one include file
|
| Q1 |
If multiple "CSEG" instructions are described in one include file,
"F627: MORE THAN TWO SEGMENTS IN THIS INCLUDE/MACRO" is output.
|
| A1 |
This error is output when multiple CSEG are described in an include file or macro.
This fits the case described in your inquiry.
|
78ra -0003
|
The message "F104 Illegal library file -- different target chip" is output by the librarian.
|
| Q1 |
When I try to view information in the 78K/0 librarian,
the following error is output.
What causes this error and how can it be handled?
| 78K/0 Series Librarian V3.10 [ 5 Mar 96]
| Copyright (C) NEC Corporation 1990,1996
| *l cl0.lib
| F104 Illegal library file - different target chip (file : CL0.LIB)
| *
|
| A1 |
An error is output because no device file could be found when creating cl0.lib.
Try including the uPD78014's device file.
The uPD78014's device file can be downloaded from
"Download Development Tools" in the NEC website.
|
78ra -0004
|
The message "not enough space for environment" is output when RA78Kx is started. [RA78Kx (16-bit version)]
|
| Q1 |
When I install the RA78K4 assembler package and start the Project Manager,
an error (not enough space for environment) is output and the Project Manager will not start.
|
| A1 |
When this error occurs, reboot the Windows once,
cancel the resident status of resident programs that are not needed,
and try starting the Project Manager again.
|
78ra -0005
|
Output of the saddrp2 code, which has a short instruction length [RA78K4]
|
| Q1 |
The instruction length differs depending on whether saddrp1 or saddrp2 is used with the MOVW saddrp,
#word instructions, but it is determined automatically or must it be specified?
|
| A1 |
If nothing is specified, processing as saddrp1 (longer instruction) is performed.
If you expect a short instruction as saddrp2,
perform symbol definition after specifying saddrp2
by operand as the relocation attribute when declaring "DSEG" for data definition.
area1 DSEG saddrp2
data1: DS 2
:
:
CSEG
:
MOVW data1,#0H
When the above is described, this MOVW instruction becomes a short instruction.
For details, refer to the DSEG section under quasi directives in the Language User's Manual.
|
| |
| Q2 |
The source program is divided into two files, a data definition file and a logic file.
The data relocation attribute is described in the data definition source file,
but how should I specify data relocation in the logic part?
|
| A2 |
Specify saddrp2 as the relocation attribute using an operand in the RAM definition mode by DSEG,
and declare as saddr2 as follows when EXTRN declaring saddrp2 in the logic block.
EXTRN saddr2 (data1, ... , ... , ...)
As a result, the symbols delimited with ",",
such as data1, etc., are generated by instructions as items in the saddr2 area.
The case you inquire about should be successfully handled by this.
For details, please refer to the section describing the EXTRN directives in the Language manual.
|
78ra -0006
|
Symbol definition options for the assembler
|
| Q1 |
Is it possible to define symbols in the same manner as with the compiler for parameters during assembly?
|
| A1 |
This has become possible from RA78K0 V3.50.
Specification similar to the compiler using option -d is possible.
Perform specification as follows from the command line.
C> ra78k0 k0main.asm c054 -dSYM
Or,
C> ra78k0 k0main.asm c054 -dSYM=1
When performing specification with the Project Manager,
input -dSYM or -dSYM=1 to "Other Options" on the "Other" page for the assembler option.
|
78ra -0007
|
Assemble error F325 is output at location 0H. [RA78K4]
|
| Q1 |
An error is output at the location set as location 0H.
|
| A1 |
This is because this is interpreted as -CS15 when the SFR area change specification option
is omitted in the RA78K4.
This error is output when the LOCATION 0 instruction exists in the source file.
If wishing to set LOCATION 0H, add -CS0 as an option with the RA78K4.
|
78ra -0008
|
Can a library be created?
|
| Q1 |
I would like to create a LIB file with Project Manager, but is this possible?
|
| A1 |
To make an object file into a LIB file, use the librarian provided in the assembler package.
To create a LIB file in Project Manager,
set "Series Name" in the "Project Settings" dialog box to "xxxxx Series Library".
Various settings and execution vis-a-vis the librarian are possible from the Project Manager.
|
78ra -0009
|
Include file name for RA78K0S
|
| Q1 |
I have created an include file (.inc), but I don't know the setting method on the Project Manager.
|
| A1 |
Generally, include files are not created independently.
If that include file is included from another ASM file,
there is no need to register it in the Project Manager.
In the Project Manager, include files are automatically analyzed and displayed in a file list.
|
78ra -0010
|
The message "A102 Illegal processor type specified" is output.
|
| Q1 |
When a program of the uPD789104A is assembled, the error
A102 Illegal processor type specified
is output.
|
| A1 |
Check if the device file for the uPD789104A is installed.
In order to perform assembly,
it is necessary to separately install a device file for definition of the target device.
The device file can be downloaded from
"Download Development Tools" in the NEC website.
|
78ra -0011
|
An error is output at $ PROCESSOR for RA78K0S.
|
| Q1 |
I use the uPD789114.
When $ PROCESSOR(114) is described in the RA78K0S, an error is output.
|
| A1 |
This is because the processor specification method is incorrect.
It appears as if
$ PROCESSOR(114)
is described, but here
$ PROCESSOR(9114)
should be described.
The lower 4 digits and not the lower 3 digits are required.
|
78ra -0012
|
Conventional memory required for assembly
|
| Q1 |
When checking with the MEM command, there are 581KB of conventional memory,
but is this a problem during assembler execution?
Name Total Conventional Higher Memory
-------- ---------------- ---------------- ----------------
MSDOS 49,872 (49K) 49,872 (49K) 0 (0K)
HIMEM 4,992 (5K) 4,992 (5K) 0 (0K)
IFSHLP 2,816 (3K) 2,816 (3K) 0 (0K)
SETVER 768 (1K) 768 (1K) 0 (0K)
WIN 3,840 (4K) 3,840 (4K) 0 (0K)
vmm32 3,296 (3K) 3,296 (3K) 0 (0K)
COMMAND 7,760 (8K) 7,760 (8K) 0 (0K)
FREE 581,712 (568K) 581,712 (568K) 0 (0K)
|
| A1 |
There are no conventional memory restrictions for 32-bit Windows compatible products.
For DOS and 16-bit Windows compatible products,
if EMS or protect memory can be used, it is automatically used.
If, judging from the size of the conventional memory in your inquiry,
there is the possibility of a problem occurring,
perhaps you use a considerable number of symbols?
Also, is cross reference output?
In this case, if the number of symbols exceeds approximately 6000, an error may be output.
If this is the case,
you can prevent this error by stopping cross reference output and reducing the number of symbols.
|
78ra -0013
|
I want to execute A-(-10).
|
| Q1 |
I want to use A-(-10) in the RA78K0, but what should I write?
When I write SUB A, #-10, I get an out of range error.
When I write SUBW AX, #-10, I get an illegal operand error.
Is -1 interpreted as FF ?
|
| A1 |
Write the following:
SUB A,#LOW -10
In the above-described method you have been using, -10 is interpreted as FFF6,
and the program's attempt to subtract this from the A register (8 bits) is what caused the error.
This problem is solved by using the lower byte of the value to be subtracted.
Therefore, use the LOW operator.
|
78ra -0014
|
An error occurs when IEBus-related register names are used with RA78K.
|
| Q1 |
When an IEBus-related register name such as the A/D current cut selection register IEAD is used,
I get an assemble error (UNDEFINED SYMBOL).
|
| A1 |
Define the address with EQU, etc. Then perform settings via the A register.
(Or directly write the address.)
The register (and the IEBus-related register) mentioned in your inquiry normally
has a different area from SFRs, and support as an SFR is not provided.
Moreover, these registers can only be used as regular memory (addr16).
Since values cannot be set directly, be sure to set values via the A register.
|
|