This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Any way for declaring symbolic constants as an external number in C51 source code ?

Is there any way to declare a symbolic constant as 'an external number' in Keil C51 source code so that the compiler generates object file using instructions with # symbol prefix (e.g. mov r0,#symbol) and therefore the value of this symbol can be supplied on the linker level (from another obj file, where the symbol is given a value and declared as public) ?

(Including file with #defines into the source code does not solve the issue - symbols must be defined at the compile time.)

Note: in assembler it is easy ...

file1.a51 : (file1.obj defines particular values of needed constants for a concrete project)


...
public SYMBOL
SYMBOL  equ  5
...

file2.a51 : (file2.obj can be stored in a library being 'universal' and the SYMBOL value will be supplied by linker)

...
extrn number (SYMBOL)
...
  mov  a,#SYMBOL
...

0