Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
74
Добавлен:
14.04.2015
Размер:
2.03 Mб
Скачать

360 Chapter 9. Linker/Locator

9

Error Messages

The Lx51 linker/locator generates error messages that describe warnings, non-

fatal errors, fatal errors, and exceptions.

Fatal errors immediately abort the Lx51 linker/locator operation.

Errors and warnings do not abort the Lx51 linker/locator operation; however, they may result in an output module that cannot be used. Errors and warnings generate messages that may or may not have been intended by the user. The listing file can be very useful in such an instance. Error and warning messages are displayed in the listing file as well as on the screen.

This section displays all the Lx51 linker/locator error messages, causes, and any recovery actions.

Warnings

Warning Warning Message and Description

1UNRESOLVED EXTERNAL SYMBOL SYMBOL: external-name

MODULE: filename (modulename)

The specified external symbol, requested in the specified module, has no corresponding PUBLIC symbol in any of the input files.

2REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: external-name

MODULE: filename (modulename)

ADDRESS: code-address

The specified unresolved external symbol is referenced at the specified code address.

3ASSIGNED ADDRESS NOT COMPATIBLE WITH ALIGNMENT

SEGMENT: segment–name

The address specified for the segment is not compatible with the alignment of the segment declaration.

4DATA SPACE MEMORY OVERLAP FROM: byte.bit address

TO: byte.bit address

The specified area of the on-chip data RAM is occupied by more than one segment.

Keil Software — A51/AX51/A251 Macro Assembler and Utilities

361

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Warning

Warning Message and Description

 

 

 

 

 

5

CODE SPACE

MEMORY OVERLAP

 

9

 

 

 

FROM: byte

address

 

 

 

 

 

 

TO:

byte

address

 

 

 

The specified area of the code memory is occupied by more than one segment.

6XDATA SPACE MEMORY OVERLAP FROM: byte address

TO: byte address

The specified area of the external data memory is occupied by more than one segment.

7MODULE NAME NOT UNIQUE

MODULE: filename (modulename)

The specified module name is used for more than one module. The specified module name is not processed.

8MODULE NAME EXPLICITLY REQUESTED FROM ANOTHER FILE

MODULE: filename (modulename)

The specified module name is requested in the invocation line of another file that has not yet been processed. The specified module name is not processed.

9EMPTY ABSOLUTE SEGMENT

MODULE: filename (modulename)

The specified module contains an empty absolute segment. This segment is not located and may be overlapped with another segment without any additional message.

10CANNOT DETERMINE ROOT SEGMENT

The Linker/Locator has recognized the C51 compiler or PL/M-51 input files and tries to process a flow analysis. However, it is impossible to determine the root segment. This error occurs if the main program is called by an assembly module. In this case, the available references (calls) must be modified with the OVERLAY control.

11CANNOT FIND SEGMENT OR FUNCTION NAME

NAME: overlay-control-name

A segment or function name defined in the OVERLAY control cannot be found in the object modules.

12NO REFERENCE BETWEEN SEGMENTS SEGMENT1: segment-name

SEGMENT2: segment-name

An attempt was made to delete a reference or call between two non-existent functions or segments, with the OVERLAY control.

 

362

 

 

Chapter 9. Linker/Locator

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Warning

Warning Message and Description

 

 

9

 

 

 

 

 

 

 

13

RECURSIVE CALL TO SEGMENT

 

 

 

 

SEGMENT: segment-name

 

 

 

 

CALLER: segment-name

 

 

 

 

The specified segment is called recursively from CALLER specified segments.

 

 

 

 

 

Recursive calls are not allowed in C51 and PL/M-51 programs.

 

 

 

 

 

 

 

 

 

 

 

 

14INCOMPATIBLE MEMORY MODEL MODULE: filename (modulename)

MODEL: memory model

The specified module is not compiled in the same memory model as the former compiled modules. The memory model of the improper module is showed by MODEL.

15MULTIPLE CALL TO SEGMENT SEGMENT: segment-name CALLER1: segment-name

CALLER2: segment-name

The specified segment is called from two levels, CALLER1, and CALLER2; e.g., main and interrupt program. This has the same effect as a recursive call and may thus lead to the overwriting of parameters or data.

16UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS

SEGMENT: segment-name

This warning occurs when functions, which were not previously called, are contained in a program (e.g., for test purposes). The function specified is excluded from the overlay process in this case. It is possible that the program then occupies more memory as during a call of the specified segment.

17INTERRUPT FUNCTION IN BANKS NOT ALLOWED SYMBOL: function-name

SPACE: code-bank

The specified C function is an interrupt function (a C51 function) that was specified to be located in a code bank. Interrupt functions cannot be located in a code bank.

18no generated by Lx51

19COMMON CODE SEGMENTS LOCATED TO BANKED AREA

Some segments that are usually located to the common area located into the banked area. This warning just informs you, that you might free up some code space by locating program code into banks. The warning is not generated for the default setting of the BANKAREA (0 - 0xFFFF).

20L51_BANK.A51: NBANKS < NUMBER OF CODE BANKS

The setting for NBANKS in the L51_BANK.A51 module is smaller than the number of banks used in your application.

Keil Software — A51/AX51/A251 Macro Assembler and Utilities

363

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Warning

Warning Message and Description

 

 

 

 

 

 

 

 

 

9

 

21

SEGMENT LOCATED OUTSIDE BANKED AREA

 

 

 

 

 

A segment that should be located in the code banking area is located outside the

 

 

 

 

 

address range of the BANKAREA directive.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22SEGMENT SIZE UNDERFLOW: OLD SIZE + CHANGE < 0

SEGMENT: segment–name

The size change specified in the SEGSIZE control causes the segment size to be less than zero.

23UNRESOLVED EXTERNAL SYMBOL DURING LINK PROCESS

During the link run one or more external symbols have no corresponding PUBLIC symbol in any of the input files.

24INCOMPATIBLE CPU MODE MODULE: module-name

MODE: cpu-mode

The specified module is not translated with the same CPU mode as the former Lx51 input modules. The CPU mode of the invalid module is displayed by MODE. The CPU mode of other input modules is displayed in the Lx51 listing file.

25DATA TYPES DIFFERENT SYMBOL: symbol-name

MODULE: module-name

The definition of the specified symbol in the specified module is not identical with the public definition of that symbol. The module which contains the public symbol can be determined with the IXREF listing. This warning is disabled with

WARNINGLEVEL (0) control.

26DATA TYPES SLIGHTLY DIFFERENT SYMBOL: symbol-name

MODULE: module-name

The definition of the specified symbol in the specified module is not 100% identical with the public definition of that symbol. This warning is the result when unsigned signed mismatches occur, i.e. unsigned char does not match char. The module which contains the public symbol can be determined with the IXREF listing. This warning is disabled with WARNINGLEVEL (1) control.

27INCOMPATIBLE INTERRUPT FRAME SIZE MODULE: module-name

FRAME: frame-size

The specified module is not translated with the same interrupt frame size assumptions as the former input modules. The frame size of the invalid module is displayed by FRAME. The frame size of other input modules is displayed in the Lx51 listing file.

 

364

 

 

Chapter 9. Linker/Locator

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Warning

Warning Message and Description

 

 

9

 

 

 

 

 

 

 

28

DECRESING SIZE OF SEGMENT

 

 

 

 

SEGMENT: segment-name

 

 

 

 

The size specified in the SEGSIZE control has caused Lx51 to decrease the size

 

 

 

 

of the specified segment.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

29SEGMENT LOCATED OUTSIDE CLASS AREA

SEGMENT: segment-name

The specified segment is located outside the memory class limits specified by the CLASSES control.

30MEMORY SPACE OVERLAP FROM: address

TO: address

The specified area of the physical memory is occupied by more than one segment.

Соседние файлы в папке HLP