ARM Technical Support Knowledge Articles

MULTIPLE PUBLIC DEFINITIONS RTX_RAMTOP (PART 1)

Applies to: RTX51 Tiny Real-time Kernel

Answer


Information in this article applies to:


QUESTION

I recently upgraded my compiler. Now my project, which uses RTX Tiny, generates the following linker errors:

*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
    SYMBOL:  ?RTX_CURRENTTASK
    MODULE:  C:KEILC51LIBRTX51TNY.LIB (?RTX51_TINY_KERNAL)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
    SYMBOL:  ?RTX_RAMTOP
    MODULE:  C:KEILC51LIBRTX51TNY.LIB (?RTX51_TINY_KERNAL)
*** WARNING L4: DATA SPACE MEMORY OVERLAP
    FROM:    0008H
    TO:      000DH
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_CURRENTTASK
    MODULE:  C:KEILC51LIBRTX51TNY.LIB (?RTX51_TINY_OS_CREATE)
    ADDRESS: 0731H
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_RAMTOP
    MODULE:  C:KEILC51LIBRTX51TNY.LIB (?RTX51_TINY_OS_CREATE)
    ADDRESS: 0745H
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_CURRENTTASK
    MODULE:  C:KEILC51LIBRTX51TNY.LIB (?RTX51_TINY_OS_CREATE)
    ADDRESS: 076FH
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_CURRENTTASK
    MODULE:  C:KEILC51LIBRTX51TNY.LIB (?RTX51_TINY_OS_DELETE)
    ADDRESS: 07BAH
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_RAMTOP
    MODULE:  C:KEILC51LIBRTX51TNY.LIB (?RTX51_TINY_OS_DELETE)
    ADDRESS: 07D3H
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_CURRENTTASK
    MODULE:  C:KEILC51LIBRTX51TNY.LIB (?RTX51_TINY_OS_DELETE)
    ADDRESS: 07F1H
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_CURRENTTASK
    MODULE:  C:KEILC51LIBRTX51TNY.LIB (?RTX51_TINY_OS_DELETE)
    ADDRESS: 080CH
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_CURRENTTASK
    MODULE:  C:KEILC51LIBRTX51TNY.LIB (?RTX51_TINY_OS_DELETE)
    ADDRESS: 081FH
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_CURRENTTASK
    MODULE:  C:KEILC51LIBRTX51TNY.LIB (?RTX51_TINY_OS_RUNNING_TASK_ID)
    ADDRESS: 086DH
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_CURRENTTASK
    MODULE:  C:KEILC51LIBRTX51TNY.LIB (?RTX51_TINY_OS_WAIT)
    ADDRESS: 0875H

The code was working before the upgrade. What am I doing wrong?

ANSWER

The upgrade has several new enhancements and requires a new configuration file. This is the cause of the error messages.

C51 version 7.02 includes RTX51 Tiny Version 2 (RtxTiny2). The source code for RTX51 Tiny Version 2 is found in the KeilC51RtxTiny2SourceCode folder.

Since RtxTiny2 works differently than RTX51 Tiny Version 1, it requires a new configuration file. Remove CONF_TNY.A51 (the configuration file for RTX tiny version 1) from the Project Workspace window and replace it with Conf_tny.A51 (the configuration file for RtxTiny2).

The old configuration file is CONF_TNY.A51 and is located in the KeilC51RTX_TINYCONF_TNY.A51 folder.

The new configuration file is Conf_tny.A51 and is located in the KeilC51RtxTiny2SourceCodeConf_tny.A51 folder.

The default Conf_tny.A51 is included in the RTX51TNY.LIB. If you do not include Conf_tny.A51 in the project workspace window, the default settings in the library are used.

MORE INFORMATION

SEE ALSO

Article last edited on: 2006-10-29 19:02:43

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential