A
ASSEMBLER ERROR MESSAGES
1 Introduction
The assembler produces error messages on standard error output. If
the list option of the assembler is effective, error messages will be included
in the list file as well, when the assembler has started list file generation.
Error messages have the following layout:
[E|F|W] error_number: filename line
number : error_message
Example:
astri E214: /tmp/tst.src line 17 : illegal addressing mode
The example reports the error, starting with the severity (E: error,
F: fatal error, W: warning) and the error number followed by the source filename and the line number. The last part of the line shows the error message text.
All
warnings (W),
errors (E), and fatal errors (F) of astri are described below.
2 Warnings (W)
The assembler may generate the following warnings:
W 101: use option at the start of the source;
ignored
Primary options must be used at the start of the source.
W 102: duplicate attribute "attribute" found
An attribute of an .EXTERN directive is used twice or more. Remove one of the duplicate attributes.
W 103: section offset can cause overlap of code or data
W 104: expected an attribute but got attribute;
ignored
W 105: section activation expected, use name directive
Use the .SECT directive to activate a section.
W 106: conflicting attributes specified "attributes"
You used two conflicting attributes in an .EXTERN statement directive. For example CODE and DATA or CLEAR and NOCLEAR. Choose which one you want to use and remove the other.
W 107: memory conflict on object "name"
A label or other object is explicit or implicit defined using incompatible memory types. Check all usages and definitions of the object name to remove this conflict.
W 108: object attributes redefinition "attributes"
A label or other object is explicit or implicit defined using incompatible attributes. For example CODE and DATA. Check all usages and definitions of the object to remove the conflict.
W 109: label "label" not used
The label label is defined with the .GLOBAL directive
and neither defined nor referred, or the label is defined with the .LOCAL directive and not referenced. You can remove this label and its definitions
(in the case of a .LOCAL label).
W 110: extern label "label" defined in module,
made global
The label label is defined with an .EXTERN directive
and defined as a label in the source. The label will be handled as a global label.
Change the .EXTERN definition into .GLOBAL or one of the identifiers.
W 111: unknown name control flag "flag"
You supplied an unknown flag to the $LIST or $DEBUG
control. See the description of the $LIST or $DEBUG control for the possible arguments.
W 112: text found after END; ignored
An .END directive designates the end of the source file. All text
after the .END directive will be ignored. Remove the text.
W 115: use ON or OFF after control name
The control you specified must have either ON or OFF after the control name. See the description of the control for details.
W 116: unkown parameter "parameter" for control-name control
See the description of the control for the allowed parameters.
W 118: inserted "extern name"
The symbol name is used inside an expression, but
not defined with an .EXTERN directive. The assembler inserts an .EXTERN definition
of the offending symbol. Add an .EXTERN definition.
W 119: "name" section has not the MAX attribute;
ignoring RESET
W 120: assembler debug information: cannot emit non-tiof expression for label
The .SYMB record contains an expression with operations that are not supported by the IEEE-695 object format. When the .SYMB record is generated by the TASKING C compiler, please fill out the error report and send it to TASKING.
W 121: changed alignment size to size
W 122: fractional has been saturated because it is outside the
fractional domain
A fract must be in the range [-1,1>.
W 123: expression: type-error
The expression performs an illegal operation on an address or combines incompatible memory spaces. Check the expression, and change it.
W 124: cannot purge macro during its own definition
W 125: "symbol" is not a defined symbol
You tried to .UNDEF a symbol that was not previously .DEFINEd or was already undefined. Check all .DEFINE/.UNDEF combinations of the offending symbol.
W 126: redefinition of "define-symbol"
The symbol is already .DEFINEd in the current scope. The symbol is redefined according to this .DEFINE. .UNDEF any symbol before redefining it.
W 127: redefinition of macro "macro"
The macro is already defined. The macro is redefined according to
this macro definition. Purge any macro using .PMACRO before redefining
it.
W 128: number of macro arguments is less than definition
You supplied less arguments to the macro than when defining it. Check your macro definition with this macro call. The undefined macro arguments are left empty (as in .DEFINE def '').
W 129: number of macro arguments is greater than definition
You supplied more arguments to the macro than when defining it. Check your macro definition with this macro call. The superfluous macro arguments are ignored.
W 130: DUPA needs at least one value argument
The .DUPA directive needs at least two arguments, the dummy parameter and a value parameter. Add one or more value-parameters.
W 131: DUPF increment value gives empty macro
The step value supplied with the .DUPF macro will skip the .DUPF macro body. Check the step value.
W 132: .IF started in previous file "file", line
line
The .ENDIF or .ELSE pre-processor directive matches with an .IF directive in another file. Check on any missing .ENDIF or .ELSE directives in that file.
W 133: currently no macro expansion active
The @CNT() and @ARG() functions can only be used inside a macro expansion. Check your macro definitions or expression.
W 134: "directive" is not supported,
skipped
The supplied directive is not supported by the TASKING assembler. Remove all uses of this directive.
W 135: define symbol of "define-symbol" is not
an identifier; skipped definition
You supplied an illegal identifier with the -D option
on the command line. An identifier should start with a letter, followed by any number
of letters, digits or underscores.
W 137: label "label" defined attribute
and attribute
The label is defined with an .EXTERN and a .GLOBAL directive. The .EXTERN directive is removed, leaving the label global.
W 138: warning: .WARNING-directive-arguments
Output from the .WARNING directive.
W 139: expression must be between hex-value and
hex-value
W 140: expression must be between value and value
W 141: gobal/local label "name"
not defined in this module; made extern
The label is declared and used but not defined in the source file.
Check the current scope of the label and its usage, change the declaration
to EXTRN or add a label definition.
W 142: redefinition of `name' macro
The macro was defined before. The new macro definition is used.
W 170: duplicate controle used: control_name
A primary assembly control was defined twice.
W 171: suspicious instruction concerning CPU functional defect TC112_COR1
The preceding instruction of a LOOP, LOOP16 or LOOPU instruction is not an ISYNC instruction.
See section TC112_COR1 in Appendix CPU
Functional Problems of the Cross-Compiler Users Guide for more details.
W 172: suspicious instruction concerning CPU functional
defect TC112_COR4
An instruction uses an An register for either an effective address calculation or as the target of an indirect branch that is located
directly after a (target) label.
See section TC112_COR4 in Appendix CPU
Functional Problems of the Cross-Compiler Users Guide for more details.
W 173: suspicious instruction concerning CPU functional defect TC112_COR10
A store operation is encountered that uses a circular addressing mode with an offset not equal to zero.
See section TC112_COR10 in Appendix CPU
Functional Problems of the Cross-Compiler Users Guide for more details.
W 174: suspicious instruction concerning CPU functional defect TC112_COR13
A loop was encountered that contains a single integer instruction
which is a DVSTEP or a DVSTEP.U.
See section TC112_COR13 in Appendix CPU
Functional Problems of the Cross-Compiler Users Guide for more details.
W 175: suspicious instruction concerning CPU functional defect TC112_COR17
A DSYNC is not followed by a NOP instruction.
See section TC112_COR17 in Appendix CPU
Functional Problems of the Cross-Compiler Users Guide for more details.
W 176: suspicious instruction concerning CPU functional defect TC113_CPU9
A DSYNC is not followed by two NOP instructions.
See section TC113_CPU9 in Appendix CPU
Functional Problems of the Cross-Compiler Users Guide for more details.
W 177: suspicious instruction concerning CPU functional
defect TC113_CPU11
- An
LDA, LDDA, or LD16A instruction is directly followed by a JI instruction.
- There
is no or just one instruction (not a NOP instruction) between label and RET or RET16.
See section TC113_CPU11 in Appendix CPU
Functional Problems of the Cross-Compiler Users Guide for more details.
W 178: suspicious instruction concerning CPU functional defect TC113_CPU14
The first label in a code section is not followed by a DSYNC instruction.
See section TC113_CPU14 in Appendix CPU
Functional Problems of the Cross-Compiler Users Guide for more details.
W 179: suspicious instruction concerning CPU functional defect TC113_CPU15
An ST.T, SWAP or LDMST instruction was encountered.
See section TC113_CPU15 in Appendix CPU
Functional Problems of the Cross-Compiler Users Guide for more details.
W 180: suspicious instruction concerning CPU functional defect TC113_CPU16
An LDA, LDDA or LD16A instruction is directly followed by a JI or CALLI instruction with the same address register as parameter.
See section TC113_CPU16 in Appendix CPU
Functional Problems of the Cross-Compiler Users Guide for more details.
W 181: suspicious instruction concerning CPU functional defect TC113_DMU1
A SWAP, LDMST or ST.T instruction was encountered.
See section TC113_DMU1 in Appendix CPU
Functional Problems of the Cross-Compiler Users Guide for more details.
W 182: suspicious instruction concerning CPU functional
defect TC113_LF12
A SWAP, LDMST or ST.T instruction was encountered.
See section TC113_LF12 in Appendix CPU
Functional Problems of the Cross-Compiler Users Guide for more details.
W 183: suspicious instruction concerning CPU functional defect TC113_LF13
A SWAP, LDMST or ST.T instruction was encountered.
See section TC113_LF13 in Appendix CPU
Functional Problems of the Cross-Compiler Users Guide for more details.
W 184: error in $PAGELENGTH control: message
The page length must be larger than 10 lines. Now the default of 66 lines is assumed.
W 185: error in $PAGEWIDTH control: message
The page width must be larger than 40 columns. Now the default of
80 columns is assumed.
3
Errors (E)
The assembler generates the following error messages when a user error situation occurs. These errors do not terminate assembly immediate.
If one or more of these errors occur, assembly stops at the end of the active
pass.
E 200: message; halting assembly
The assembler stops the further processing of your source file. This
is only an informative message. Remove all errors reported earlier and
try again.
E 201: unexpected newline or line delimiter
The syntax checker found a newline or line delimiter that does not confirm to the assembler grammar. Check the line for syntax errors
or remove the offending newline or line delimiter.
E 202: unexpected character: 'character'
The syntax checker found a character that does not confirm to the assembler grammar. Check the line for syntax errors or remove the offending character.
E 203: illegal escape character in string constant
The syntax checker found an illegal escape character in the string constant that does not confirm to the assembler grammar. Check the line for syntax errors or remove the offending escape character.
E 204: I/O error: open intermediate file failed ( file
)
The assembler opens an intermediate file to optimize the lexical scanning phase. The assembler cannot open this file. The assembler checks if the environment symbol TMPDIR is set. If so, this directory
is used for opening the file. Otherwise the file is opened in the current directory.
E 205: syntax error: expected token instead of
token
The syntax checker expected to find a token but found another token. The expected token is inserted instead of the found token. Check the line for syntax errors.
E 206: syntax error: token unexpected
The syntax checker found an unexpected token. The offending token is removed from the input and assembling continues. Check the line for syntax errors.
E 207: syntax error: missing ':'
The syntax checker found a label definition or memory space modifier but missed the appended semi-colon. Check the line for syntax errors, for example misspelled mnemonics.
E 208: syntax error: missing ')'
The syntax checker expected to find a closing parentheses. Check the expression syntax for missing operators and nesting of parentheses.
E 209: invalid radix value, should be 2, 8, 10 or 16
The .RADIX directive accepts only 2, 8, 10 or 16.
E 210: syntax error
The syntax checker found an error. Check the line for syntax errors.
E 211: unknown model
Substitute the correct model.
E 212: syntax error: expected token
The syntax checker expected to find a token but found nothing. The expected token is inserted. Check the line for syntax errors.
E 213: label "label" defined attribute
and attribute
The label is defined with a .LOCAL and a .GLOBAL or .EXTERN directive. Check your label scoping or change the label declarations.
E 214: illegal addressing mode
The mnemonic used an illegal addressing mode. Check the register usage of address constructs.
E 215: not enough operands
The mnemonic needs more operands. Check the source line and change the instruction.
E 216: too many operands
The mnemonic needs less operands. Check the source line and change the instruction.
E 217: description
There was an error found during assembly of the mnemonic. Check the instruction.
E 218: unknown mnemonic: "name"
The assembler found an unknown mnemonic. Check the instruction.
E 220: not within CODE section; instruction is removed
Instructions are not allowed in a DATA section.
E 223: unknown section "name"
The section name specified with a .SECT directive has not (yet) been defined with a .SDECL directive. Check the .SECT name and the corresponding .SDECL name.
E 224: unknown label "name"
A label was used which was not defined. Check that the label and its definition have the same name.
E 225: invalid memory type
You supplied an invalid memory modifier.
E 226: unknown symbol attribute: sect_type
You specified an invalid section type.
E 227: invalid memory attribute
The assembler found an unknown location counter or memory mapping attribute.
E 228: name attribute needs a number
The attribute attr needs an extra parameter. For example,
the FIT attribute.
E 229: only one of the name attributes may be
specified
E 230: invalid section attribute: name
The assembler found an unknown section attribute.
E 231: absolute section, expected "AT" expression
An absolute section must be specified using an 'AT address'
expression.
E 232: MAX/OVERLAY sections need to be named sections
Sections with the MAX or OVERLAY attribute must have a name, otherwise the locator cannot overlay the sections.
E 233: type section cannot have attribute attribute
Code sections may not have the CLEAR or OVERLAY attribute.
E 234: section attributes do not match earlier declaration
In an previous definition of the same section other attributes were used. Check all section definitions with the same name.
E 235: redefinition of section
An absolute section of the same name can only be located once.
E 236: cannot evaluate expression of descriptor
Some functions and directives must evaluate their arguments during assembly. Change the expression so that it can be evaluated.
E 237: descriptor directive must have positive
value
Some directives need to have a positive argument. Check the expression so that is evaluates to a positive number.
E 238: Floating point numbers not allowed with .BYTE directive
The .BYTE directive does not accept floating point numbers. Convert the expressions or use the .HALF directive instead.
E 239: byte constant out of range
The .BYTE directive stores expressions in bytes. A byte can only hold numbers between 0 and 255.
E 240: word constant out of range
The .HALF directive stores expressions in words. A word can hold 16 bit numbers. Check the range of the expression.
E 241: Cannot emit non tiof functions, replaced with integral
value '0'
Floating point expressions and some functions can not be represented in the IEEE-695 object format. When an expression contains unknown symbols it cannot be evaluated and not emitted to the object file. Change these expressions to integral expressions, or make sure they can be evaluated during assembly.
E 242: the name attribute must be specified
A section must have the CODE or DATA attribute.
E 243: use $OBJECT OFF or $OBJECT "object-file"
E 244: unknown control "name"
The specified control does not exist. See chapter 8
for a description of all available controls.
E 245: error in expression: expression
Check the expression. The expression might not be a constant value.
E 246: .ENDM within .IF/.ENDIF
The assembler found an .ENDM directive within an .IF/.ENDIF pair. Check the macro and dup definitions or remove this directive.
E 247: illegal condition code
The assembler encountered an illegal condition code within an instruction. Check your input line.
E 248: cannot evaluate origin expression of org "name:
address"
All origins of absolute sections must be evaluated before creation
of the object file. Check the address expression on the usage of undefined
or location dependant symbols.
E 249: incorrect argument types for function "function"
The supplied argument(s) evaluated to a different type than expected. Change the argument expressions to the correct type.
E 250: tiof function not yet implemented: "function"
The supplied tiof function is not yet implemented.
E 251: @POS(,,start) start argument past end of
string
The start argument is larger than the length of the
string in the first parameter. Change start to the correct range.
E 252: second definition of label "label"
The label is defined twice in the same scope. Check the label definitions and rename of remove duplicate definitions.
E 253: recursive definition of symbol "symbol"
The evaluation of the symbol depends on its own value. Change the symbol value exclude this cyclic definition.
E 254: missing closing '>' in include directive
The syntax checker missed the closing '>' bracket in the include directive. Add a closing '>'.
E 255: could not open include file include-file
The assembler could not open the given include-file. Check the current search path for the presence of the include file and if it may be
read.
E 256: integral divide by zero
The expression contains an divide by zero. This is not defined. Change the expression to exclude a division by zero.
E 257: unterminated string
All strings must end on the same line as they are started. Check for
a missing ending quot.
E 258: unexpected characters after macro parameters, possible
illegal white space
Spaces are not permitted between macro parameters. Check the syntax of the macro call.
E 259: .COMMENT directive not permitted within a macro definition and conditional assembly
The TASKING assembler does not permit the usage of the .COMMENT directive within .MACRO/.DUP definitions or .IF/.ELSE/.ENDIF constructs. Replace the offending .COMMENTs with comments starting with a semicolon.
E 260: definition of "macro" unterminated, missing
"endm"
The macro definition is not terminated with an .ENDM directive. Check the macro definition.
E 261: macro argument name may not start with an '_'
.MACRO and .DUP arguments may not start with an underscore. Replace the offending parameter names with non-underscore names.
E 262: cannot find "symbol"
Could not find a definition of the argument of a '%' or '?' operator within a macro expansion. Check for a definition of the offending symbol.
E 263: cannot evaluate: "symbol", value
is unknown at this point
The symbol used with a '%' or '?' operator within a macro expansion has not been defined. Insert a definition of the offending identifier.
E 264: cannot evaluate: "symbol", value depends
on an unknown symbol
Could not evaluate the argument of a '%' or '?' operator within a
macro expansion. Check the definition of the offending symbol.
E 265: cannot evaluate argument of dup (unknown
or location dependant symbols)
The arguments of the .DUP directive could not be evaluated. Check
the argument expressions on forward references or unknown symbols.
E 266: dup argument must be integral
The argument of the .DUP directive must be integral. Change the expression so that it evaluates to an integral number.
E 267: dup needs a parameter
Check the syntax of the .DUP directive.
E 268: ENDM without a corresponding .MACRO or D.UP definition
The assembler found an .ENDM directive without an corresponding .MACRO or .DUP definition. Check the macro and dup definitions or remove this directive.
E 269: .ELSE without a corresponding .IF
The assembler found an .ELSE directive without an corresponding .IF directive. Check the .IF/.ELSE/.ENDIF nesting or remove this directive.
E 270: .ENDIF without a corresponding .IF
The assembler found an ENDIF directive without an corresponding .IF directive. Check the .IF/.ELSE/.ENDIF nesting or remove this directive.
E 271: missing corresponding .ENDIF
The assembler found an .IF or .ELSE directive without an corresponding .ENDIF directive. Check the .IF/.ELSE/.ENDIF nesting
or remove this directive.
E 272: label not permitted with this directive
Some directives do not accept labels. Move the label to a line before
or after this line.
E 273: wrong number of arguments for function
The function needs more or less arguments. Check the function definition and add or remove arguments.
E 274: illegal argument for function
An argument has the wrong type. Check the function definition and change the arguments accordingly.
E 275: expression not properly aligned
E 276: immediate value must be between value and
value
The immediate operand of the instruction does only accept values in the given range. Use the '&' operator to force a value within the needed range or use '#>' to force a long immediate operand.
E 277: address must be between $address and $address
The address operand is not in the range mentioned. Change the address expression.
E 278: operand must be an address
The operand must be an address but has no address attributes. Use
an address modifier or change the address expression.
E 279: address must be short
E 280: address must be short
The operand must be an address in the short range. The expression evaluated to a long address or an address in an unknown range.
E 281: illegal option "option"
The assembler found an unknown or misspelled command line option. The option will be ignored. Use the -? option to see
a list of all possible options.
E 282: "Symbols:" part not found in map file "name"
The map file may be incomplete. Check if it is correctly produced
by the locator.
E 283: "Sections:" part not found in map file "name"
The map file may be incomplete. Check if it is correctly produced
by the locator.
E 284: module "name" not found in map
file "name"
The map file may be incomplete. Check if it is correctly produced
by the locator.
E 285: file-kind file will overwrite file-kind file
The assembler warns when one of its output files will overwrite the source file you gave on the command line or another output file. Change the name of the source file, use the -o option
to change the name of the output file or remove the -err option
to suppress the generation of the error file.
E 286: $CASE options must be given before any symbol definition
The $CASE options may only be given before any symbol is defined. Move the options to the start of the first source file.
E 287: symbolic debug error: message
The assembler found an error in a symbolic debug (.SYMB) instruction. When the SYMB instruction is generated by the TASKING C compiler, please fill out the error report form and send it to TASKING. As a
work around you could disable the symbolic debug information of this module (remove the -g option).
E 288: error in PAGE directive: message
The arguments supplied to the PAGE directive do not conform to the restrictions. Check the PAGE directive restrictions in the manual
and change the arguments accordingly.
E 290: fail: message
Output of the .FAIL directive. This is an user generated error. Check
the source code to see why this .FAIL directive is executed.
E 291: generated check: message
Integrity check for the coupling between the TASKING C compiler and TASKING assembler. You should not see this error message, unless there are error in user inserted assembly (using the "#pragma asm" construct).
E 293: expression out of range
An instruction operand must be in a specified address range. Check
the address expression, change it.
E 294: expression must be between hexvalue
and hexvalue
E 295: expression must be between value and value
E 296: optimizer error: message
The optimizer found an error. Try to change the instruction or turn
off the the optimizer.
E 297: jump address must be a code address
Jumps and jump-subroutines must have a target address in code memory. Check the address expression or use a memory modifier to force the expression into code memory.
E 298: size depends on location, cannot evaluate
The size of some constructions (notably the align directives) depend
on the memory address. Change the offending construction.
E 299: absolute expression expected for section offset
The expression must result in an absolute expression, to be used as
a section offset.
E 301: #error: line
A C preprocessor error occurred.
E 302: illegal C preprocessor `#define'-name
A '#define' name must be a legal identifier.
E 303: error in parameter list of `#define' symbol definition
Another parameter or the ')' character was expected.
E 304: missing `#define'-name for `defined(...)' function
E 305: `name' is an unknown or non-constant symbol
E 306: duplicate macro parameter `name'
Each macro parameter must have a unique name.
E 307: wrong number of arguments for `name'
Check the definition of the macro for the correct number of arguments.
E 308: message
E 350: SFR include file regcpu.def not found
The assembler tries to open the file "regcpu.def"
to add the predefined special function registers to the symbol table. Check if you have entered the correct cpu type and/or check if the file is present in
the include directory
of the installed product.
E 351: error in control: message
The argument of the control may need enclosing parentheses or there is an invalid character in the control name.
4
Fatal Errors (F)
The following errors cause the assembler to terminate immediately.
Fatal errors are usually due to user errors.
F 401: memory allocation error
A request for free memory is denied by the system. All memory has been used. You may have to break your program down into smaller pieces.
F 402: duplicate input filename "file" and "file"
The assembler requires one input filename on the command line. Two or more filenames is erroneous.
F 403: error opening file-kind file : "file-name"
The assembler could not open the given file. When this is a source
file, check if the file you specified at the command line exists and if
it is readable. When the file is a temporary file, check if the environment symbol TMPDIR has been set correctly.
F 404: protection error : message
No protection key or not a IBM compatible PC.
F 405: I/O error
The assembler cannot write its output to a file. Check if you have enough free disk space.
F 406: parser stack overflow
F 407: symbolic debug output error
The symbolic debug information is incorrectly written in the object
file. Please fill out the error report form and send it to TASKING.
F 408: illegal operator precedence
The operator priority table is corrupt. Please fill out the error
report form and send it to TASKING.
F 409: Assembler internal error
The assembler encountered internal inconsistencies. Please fill out
the error report form and send it to TASKING.
F 410: Assembler internal error: duplicate mufom "symbol" during rename
The assembler renames all symbols local to a scope to unique symbols. In this case the assembler did not succeed into making an unique name. Please fill out the error report form and send it to TASKING.
F 411: symbolic debug error: "message"
An error occurred during the parsing of the .SYMB directive. When
this SYMB directive is generated by the TASKING C compiler, please fill
out the error report form and send it to TASKING.
F 412: macro calls nested too deep (possible endless recursive
call)
There is a limit to the number of nested macro expansions. Currently this limit is set to 1000. Check for recursive definitions or try
to simplify your source when you encounter this restriction.
F 413: cannot evaluate "function"
A function call is encountered although it should have been processed. As a work-around, try to locate the offending function call and remove it from your source. Please fill out the error report form and send
it to TASKING.
F 414: cannot recover from previous errors, stopped
Due to earlier errors the assembler internal state got corrupted and stops assembling your program. Remove the errors reported earlier
and retry.
F 415: error opening temporary file
The assembler uses temporary files for the debug information and list file generation. It could not open or create one of those temporary files. Check if the environment symbol TMPDIR has been set correctly.
F 416: internal error in optimizer
The optimizer found a deadlock situation. Try to assemble without
any optimization options. Please fill out the error report form and send
it to TASKING.
Copyright © 2002 Altium BV