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

modifying putchar, and watching the prinf source code

In http://www.keil.com/support/docs/788.htm you described how to change the putchar function.
I have coppied PUTCHAR.C to the project directory, and added it to the project source files (using uVision2). As soon as I started to re-build the project, the following error occured:


Build target 'Target 1'
compiling SIO.C...
compiling MAIN.C...
compiling PUTCHAR.C...
linking...
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: _PUTCHAR
MODULE: .\output\PUTCHAR.obj (PUTCHAR)
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_PUTCHAR?PUTCHAR
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
SYMBOL: _PUTCHAR
MODULE: C:\KEIL\C51\LIB\C51S.LIB (PRINTF)
ADDRESS: 0080H
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
SYMBOL: _PUTCHAR
MODULE: C:\KEIL\C51\LIB\C51S.LIB (GETCHAR)
ADDRESS: 06E2H
Program Size: data=50.3 xdata=0 code=1780
Target not created

Why ? Where else is putchar defined ? what can I do in order to change putchar ?

Another question is where can I see the source code of printf ?

Thanks,
Amit.

Parents
  • Hi,
    Sorry for the delay with my response.
    Since the error was not clear (didn't point at the relevant place in the code where the problem is), and since the code was downloaded from another place, and was not originally my code, I missed that putchar redefinition in the main.

    I am sure that this was the problem, but I didn't have time to verify it.
    My task was changed and I didn't need to use main any more (and didn't have time for it).

    Anyway, thanks for your kind help.
    Best Regards,
    Amit A.

Reply
  • Hi,
    Sorry for the delay with my response.
    Since the error was not clear (didn't point at the relevant place in the code where the problem is), and since the code was downloaded from another place, and was not originally my code, I missed that putchar redefinition in the main.

    I am sure that this was the problem, but I didn't have time to verify it.
    My task was changed and I didn't need to use main any more (and didn't have time for it).

    Anyway, thanks for your kind help.
    Best Regards,
    Amit A.

Children
No data