Keil™, An ARM® Company

Technical Support

RTX51 TINY: MULTIPLE PUBLIC DEFINITIONS RTX_RAMTOP (PART 1)


Information in this article applies to:

  • C51 version 7.02 and later

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:\KEIL\C51\LIB\RTX51TNY.LIB (?RTX51_TINY_KERNAL)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
    SYMBOL:  ?RTX_RAMTOP
    MODULE:  C:\KEIL\C51\LIB\RTX51TNY.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:\KEIL\C51\LIB\RTX51TNY.LIB (?RTX51_TINY_OS_CREATE)
    ADDRESS: 0731H
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_RAMTOP
    MODULE:  C:\KEIL\C51\LIB\RTX51TNY.LIB (?RTX51_TINY_OS_CREATE)
    ADDRESS: 0745H
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_CURRENTTASK
    MODULE:  C:\KEIL\C51\LIB\RTX51TNY.LIB (?RTX51_TINY_OS_CREATE)
    ADDRESS: 076FH
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_CURRENTTASK
    MODULE:  C:\KEIL\C51\LIB\RTX51TNY.LIB (?RTX51_TINY_OS_DELETE)
    ADDRESS: 07BAH
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_RAMTOP
    MODULE:  C:\KEIL\C51\LIB\RTX51TNY.LIB (?RTX51_TINY_OS_DELETE)
    ADDRESS: 07D3H
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_CURRENTTASK
    MODULE:  C:\KEIL\C51\LIB\RTX51TNY.LIB (?RTX51_TINY_OS_DELETE)
    ADDRESS: 07F1H
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_CURRENTTASK
    MODULE:  C:\KEIL\C51\LIB\RTX51TNY.LIB (?RTX51_TINY_OS_DELETE)
    ADDRESS: 080CH
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_CURRENTTASK
    MODULE:  C:\KEIL\C51\LIB\RTX51TNY.LIB (?RTX51_TINY_OS_DELETE)
    ADDRESS: 081FH
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_CURRENTTASK
    MODULE:  C:\KEIL\C51\LIB\RTX51TNY.LIB (?RTX51_TINY_OS_RUNNING_TASK_ID)
    ADDRESS: 086DH
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:  ?RTX_CURRENTTASK
    MODULE:  C:\KEIL\C51\LIB\RTX51TNY.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 \Keil\C51\RtxTiny2\SourceCode 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 \Keil\C51\RTX_TINY\CONF_TNY.A51 folder.

The new configuration file is Conf_tny.A51 and is located in the \Keil\C51\RtxTiny2\SourceCode\Conf_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

Last Reviewed: Sunday, October 29, 2006


Did this article provide the answer you needed?
 
Yes
No
Not Sure