When I run the linker BL51.exe using the following command
BL51.EXE obj/STARTUP.obj, obj/task.obj, obj/hwm_wireless_cc2420.obj, obj/hwm_spi.obj, obj/hwm_pwrp_f342.obj, obj/hwm_usb_uart.obj, obj/hwm_usb_uart_int.obj, obj/hwm_usb_uart_descriptor_prj.obj, obj/demo.obj TO out/esnl XDATA (0X0000-0X1000) DATA (30H) RS (256) NOOVERLAY PRINT(lst/esnl.m51)
It hangs the system. If I remove one or more of the files then it links successfully. I am suspecting that the generated code is above some limit at which the linker quits working.
My linker version "BL51 BANKED LINKER/LOCATER V4.02"
Note This message was edited to reduce width.
I (thought) I had a similar issue, whet I did was to stich a number of objects in a libray and include the library in the link line.
'thought' in brackets because all I know was it did not work before, but did work after and if something else happened, I do not know. I did not try to 'go back' to verify. Since then all my build files work that way.
Erik
if not exist as.lib goto usliex del as.lib :usliex c:\tools\keil\c51\bin\lib51 c as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a SSF881C.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a SSF882C.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a SSF882M.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a SSFcc1C.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a SSFcc1A.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a SSF771A.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a SSF901C.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a Sfmtbs.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a Sfmtbm.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a SZfsn.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a SZbsn.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a SZfsc.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a SZbsc.obj to as.lib >..\trash\trashbin if "%MUSTYP%"=="a" goto lnkac if "%MUSTYP%"=="b" goto lnkac if "%MUSTYP%"=="m" goto lnksa if "%MUSTYP%"=="s" goto lnksl if "%MUSTYP%"=="t" goto lnksa echo on rem WHAT 47 goto getout :lnkac c:\tools\keil\c51\bin\lib51 a Sacode.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a Sccode.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a Scrout.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a Sarout.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a S485.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\bl51 Sstart.obj, Sisr.obj, Siic.obj, Smain.obj, \ Sxdata.obj, Szdata.obj, as.lib, c51s.lib TO \ as.omf RS(256) IX >protl.log goto lnkdn :lnksa c:\tools\keil\c51\bin\lib51 a Sacode.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a Sccode.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a Scrout.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a Sarout.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a S485.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a STAgchar.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a STAbmap.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\bl51 STAstart.obj, STAisr.obj, STAiic.obj, STAmain.obj, \ Sxdata.obj, Szdata.obj, as.lib, c51s.lib TO as.omf \ RS(256) IX >protl.log goto lnkdn :lnksl c:\tools\keil\c51\bin\lib51 a SLVccode.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a SLVcrout.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a SLVarout.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a SLV485.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\lib51 a SLV1wire.obj to as.lib >..\trash\trashbin c:\tools\keil\c51\bin\bl51 SLVstart.obj, SLVisr.obj, SLViic.obj, SLVmain.obj, \ SLVxdata.obj, SLVzdata.obj, SLVUmain.obj, \ SLVUflsh.obj, as.lib, c51s.lib TO as.omf \ RS(256) IX CO(?PR?_SLVUmain?SLVUMAIN (0xE000), \ ?PR?CUP*) >protl.log