Keil Logo

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
 
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.