Technical Support

BL51: WARNING 1 (UNRESOLVED EXTERNAL SYMBOL) USING SBITS


Information in this article applies to:

  • C51 Version 5.50a
  • C51 Version 6.00 Beta
  • C51 Version 6.00

QUESTION

I want to use a bit of Port P1 for a chip select line. I have declared the chip select as follows:

sbit CS=P1^4;

In a second module I need to access this SFR, so I declare it as an extern:

extern bit CS;

When I link, I receive the following linker error:

Warning L1: Unresolved External Symbol
Symbol: CS
Module: second module name

Where have I made a mistake?

ANSWER

Unfortunately, you can't declare sbits as extern. You must declare the sbit in each C file (or create a header file for it). Just include the SBIT definition you already have in each file.

MORE INFORMATION

  • Review the REG??.H include files in the \C51\INC directory for examples of how you can declare SFRs in an include file.
  • Refer to Warning L1 in the BL51 User's Guide.

SEE ALSO

FORUM THREADS

The following Discussion Forum threads may provide information related to this topic.

Last Reviewed: Tuesday, March 27, 2007


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