I am using P89V51RD2 for my project I have choosen this IC because it have 1K Ram My programme is compiling but while linking I ma getting following errors.
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL SYMBOL: ask_disp_key_val MODULE: mc_ad1.obj (MC_AD1) *** ERROR L127: UNRESOLVED EXTERNAL SYMBOL SYMBOL: chk_keys MODULE: mc_ad1.obj (MC_AD1) *** ERROR L127: UNRESOLVED EXTERNAL SYMBOL SYMBOL: chk_test_over MODULE: mc_ad1.obj (MC_AD1) *** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: ask_disp_key_val MODULE: mc_ad1.obj (MC_AD1) ADDRESS: 10014D3H *** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: chk_keys MODULE: mc_ad1.obj (MC_AD1) ADDRESS: 10014D9H *** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: chk_test_over MODULE: mc_ad1.obj (MC_AD1) ADDRESS: 10014DCH *** ERROR L127: UNRESOLVED EXTERNAL SYMBOL SYMBOL: MAIN MODULE: C:\KEIL\C51\LIB\C51L.LIB (?C_INIT) *** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: MAIN MODULE: C:\KEIL\C51\LIB\C51L.LIB (?C_INIT) ADDRESS: 1000E67H Program Size: data=28.1 xdata=143 const=0 code=6729 Target not created
I am using some of the variables as xdata,I am confused whether this problem is because of xdata? I have done the folloeing changes to startup file also
XDATASTART EQU 0H ; the absolute start-address of XDATA memory XDATALEN EQU 2ffH ; the length of XDATA memory in bytes. AUXR1 DATA 08EH ; add SFR definition STARTUP1: ; enable on-chip xdata RAM ANL AUXR1,#NOT 02H ; AUXR1/Bit 1 (clear to 0 to enable on-chip XRAM)
also my target settings are memory model : large code Rom : Large Use onchip Rom:selected Use onchi XRam :selected Use Multiple DPTR : Selected
Please help me out.
I hope you haven't - that would certainly be A Bad Thing.
But I guess you really mean that you've included declarations in your header...?
While declarations are necessary for the file to compiler, they are not sufficient for the whole project to link - you must also have the definitions somewhere.
See: c-faq.com/.../decldef.html
"I have defined all the fuctions"
No, the message clearly tells you that you have not defined them - or, at least, not in any place that the linker can find...
"I am new to keil preeviously using sdcc compiler"
This has nothing specifically to do with Keil nor SDCC - it is standard 'C' stuff