ARM Technical Support Knowledge Articles

MULTIPLE PUBLIC DEFINITIONS RTX_RAMTOP (PART 2)

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 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? For complience reasons, I need to use RTX tiny version 1, and cannot upgrade to RTXtiny2

ANSWER

C51 version 7.02 includes RTX51 Tiny Version 2 (RtxTiny2). RtxTiny2 contains several new enhancements. Version 7.02 by default uses the RtxTiny2 library. However, it is possible to use RTX tiny version 1's libary.

Manually add the RTX51 Tiny Version 1 library to the project workspace window. The version 1 libraries are located at:
KeilC51RTX_TINYRTX51TNY.LIB

When you add the version 1 library to your project, the linker will not link the version 2 library into your project. This will remove the errors shown above.

This option is best if you must use RTX51 Tiny Version 1, and you are using CONF_TNY.A51 (the configuration file for RTX tiny version 1).

Note that the old configuration file is CONF_TNY.A51 and is located at:
KeilC51RTX_TINYCONF_TNY.A51 (Upper case file name)

The new configuration file is CONF_TNY.A51 and is located at:
KeilC51RtxTiny2SourceCodeConf_tny.A51 (Lower case file name)

MORE INFORMATION

SEE ALSO

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

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