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

Ongoing problem with linker Error 204 Posting linker file

Hi to you all
thank you for all the suggestions in relation to this problem.
I am posting the linker file for you to examine.I also have talked to the programmer that had previously been working for the company and he tried also to overcome the problem but with no luck.

 clock.obj, codes.obj, com_test.obj, comms.obj, config.obj, control.obj, crc.obj, &
eng_cod.obj, hols.obj, ind_init.obj, &
initmod.obj, inputs.obj, int10ms.obj, intercom.obj, keybd.obj, keyin.obj, &
lcd_mod.obj, man_cod.obj, mode_mod.obj, outputs.obj, overide.obj, &
print_c.obj, print_m.obj, print_r.obj, print_s.obj, printer.obj, &
records.obj, sensors.obj, settime.obj, setup.obj, site_cod.obj, start.obj, &
strings.obj, test.obj, utils.obj, zone.obj , startup.obj, disp_int.obj, &
ramdata.obj, e2_data.obj, s_zone.obj, s_sensor.obj, s_output.obj, &
s_input.obj, s_lux.obj, s_w_snsr.obj, s_codes.obj, r_sensor.obj, &
r_zone.obj, r_output.obj, r_input.obj, clockdat.obj, time.obj, display.obj, datatran.obj &
TO V10001e.abs &
RAMSIZE(256) CODE(0100H) XDATA(?xd?r_zone(00000H), ?xd?r_sensor(000e0H), &
?xd?r_output(00240H), ?xd?r_input(002e0H), ?xd?ramdata(00310H), ?xd?s_codes(0d007H), &
?xd?s_zone(0d037H), ?xd?s_sensor(0da1fH),?xd?s_input(0db67H), &
?xd?s_output(0dd87H), ?xd?s_w_snsr(0deffH), ?xd?s_lux(0df01H), &
?xd?clockdat(0E010H),00000H) &
SYMBOLS PUBLICS

Also all the files compiled and there where some assembly files within here.
However I edit the linker it will always come up with the same error.
Any suggestions would be welcome.
Thanks in advance
Nick

  • Also here is the exact error message

    Linking
    *** FATAL ERROR 204: INVALID KEYWORD
    C:\C51\BIN\BL51.EXE C:\V10001E\C\CLOCK.OBJ,C:\V10001E\C\CLOCKDAT.OBJ,
    C:\V10001E\C\CODES.OBJ,C:\V10001E\C\COM_TEST.OBJ,C:\V10001E\C\COMMS.OBJ,
    C:\V10001E\C\CONFIG.OBJ,C:\V10001E\C\CONTROL.OBJ,C:\V10001E\C\CRC.OBJ,
    C:\V10001E\C\DATATRAN.OBJ,C:\V
    

    as you see now I havent got the # symbol appearing error message

  • Maybe your command line is too long. Take a look at the section on command lines/files in the manual.

    Please don't keep starting new threads unless you are talking about a different problem.

    What is this "# symbol" you keep going on about?

    Stefan

  • The # symbol appeared previously with the error report without it being part of the linker control file.
    Well I will truncate it somewhat and see what happens.
    I didnt realise you cannot start a new thread about an ongoing problem. Any way thanks for that.

  • Well, I've just managed to force an L204 error with BL51 v5.03, and it looks like this:

    *** FATAL ERROR L204: INVALID KEYWORD
        POS: 772
        51_lst\Ml_test.map) PAGEWIDTH (132) PAGELENGTH (32760) PRINTCONTROLS (#
    So the '#' is where the Linker thinks the problem lies.

    The "POS: 772" looks like the character position where the Linker thinks the error is (possibly after stripping quotes, newlines, etc?)

    Does your error message look like that?
    Can you post the full message - verbatim?

    Are you trying to put all this on the command line, or using a command file?

    If you're using just a command line, it could well be too long - so the Linker could be getting a truncated command & reporting it as an invalid keyword?

  • Can you post the error message as it appears at the bottom of the MAP file?

    Jon

  • I have posted the error message exactly as it is reported also I tried to open the .LER with the textpad editor but icame with some weird characters as you see the compiler is not reporting the position of the error all I get is what I have written

  • "I didnt realise you cannot start a new thread about an ongoing problem."

    The whole idea behind a thread is that you can see the entire discussion in one place. If I want to see what you've said before and what advice you have been given I can just scroll up and down rather than having to go and locate the other threads that contain bits of the discussion. It just makes sense...

  • I am using a command file called link.ctl not the command except of I am mixing things up and reporting the error properly I have put verbatim error message.In the Code banking linker setup on the command line link options I have the line
    @C:\V10001E\LINK.CTL

    I think I will truncate the file and see what happens

  • Sorry but I havent been on a discussion forum before so I am not sure how they work what you call the MAP? Is that the linker file renamed?

  • Jon

    r_zone.obj, r_output.obj, r_input.obj, clockdat.obj, time.obj, display.obj, datatran.obj &
    TO V10001e.abs &
    RAMSIZE(256) CODE(0100H) XDATA(?xd?r_zone(00000H), ?xd?r_sensor(000e0H), &
    ?xd?r_output(00240H), ?xd?r_input(002e0H), ?xd?ramdata(00310H), ?xd?s_codes(0d007H), &
    ?xd?s_zone(0d037H), ?xd?s_sensor(0da1fH),?xd?s_input(0db67H), &
    ?xd?s_output(0dd87H), ?xd?s_w_snsr(0deffH), ?xd?s_lux(0df01H), &
    ?xd?clockdat(0E010H),00000H) &
    SYMBOLS PUBLICS
    
    

    I truncated the code and funnily enough it linked all the non existent files which are now not included and came up with the same error.So I am not sure where the enviroment is pointing but not the one I have changed has this ever happened to you or have you heard of such a thing?
    I am baffled as this project was all working 3 yrs ago.

  • That is not the error.

    Can you post the error message as it appears at the bottom of the MAP file?

    Also, can you post the command line as it appears in the MAP file?

    Jon

  • Is the map file the file with extesion M51?

  • Jon
    Here is the map file

    BL51 BANKED LINKER/LOCATER V4.02              09/29/2003  16:27:05  PAGE 1
    
    
    BL51 BANKED LINKER/LOCATER V4.02, INVOKED BY:
    C:\KEIL\C51\BIN\BL51.EXE  C:\V10001E\C\CLOCK
    >> .OBJ, C:\V10001E\C\CLOCKDAT.OBJ, C:\V10001E\C\CODES.OBJ, C:\V10001E\C\COM_T
    >> EST.OBJ, C:\V10001E\C\COMMS.OBJ, C:\V10001E\C\CONFIG.OBJ, C:\V10001E\C\CONT
    >> ROL.OBJ, C:\V10001E\C\CRC.OBJ, C:\V10001E\C\DATATRAN.OBJ, C:\V10001E\C\DISP
    >> LAY.OBJ, C:\V10001E\C\E2_DATA.OBJ, C:\V10001E\C\ENG_COD.OBJ, C:\V10001E\C\H
    >> OLS.OBJ, C:\V10001E\C\IND_INIT.OBJ, C:\V10001E\C\INITMOD.OBJ, C:\V10001E\C\ 
    >> INPUTS.OBJ, C:\V10001E\C\INT10MS.OBJ, C:\V10001E\C\INTERCOM.OBJ, C:\V10001E
    >> \C\KEYBD.OBJ, C:\V10001E\C\KEYIN.OBJ, C:\V10001E\C\LCD_DAT.OBJ, C:\V10001E\ 
    >> C\LCD_MOD.OBJ, C:\V10001E\C\MAN_COD.OBJ, C:\V10001E\C\MODE_MOD.OBJ, C:\V100
    >> 01E\C\OUTPUTS.OBJ, C:\V10001E\C\OVERIDE.OBJ, C:\V10001E\C\PRINT_C.OBJ, C:\V
    >> 10001E\C\PRINT_M.OBJ, C:\V10001E\C\PRINT_R.OBJ, C:\V10001E\C\PRINT_S.OBJ, C
    >> :\V10001E\C\PRINTER.OBJ, C:\V10001E\C\R_INPUT.OBJ, C:\V10001E\C\R_OUTPUT.OB
    >> J, C:\V10001E\C\R_SENSOR.OBJ, C:\V10001E\C\R_ZONE.OBJ, C:\V10001E\C\RAMDATA
    >> .OBJ, C:\V10001E\C\RECORDS.OBJ, C:\V10001E\C\S_CODES.OBJ, C:\V10001E\C\S_LU
    >> X.OBJ, C:\V10001E\C\S_OUTPUT.OBJ, C:\V10001E\C\S_SENSOR.OBJ, C:\V10001E\C\S
    >> _W_SNSR.OBJ, C:\V10001E\C\S_ZONE.OBJ, C:\V10001E\C\SENSORS.OBJ, C:\V10001E\ 
    >> C\SETTIME.OBJ, C:\V10001E\C\SETUP.OBJ, C:\V10001E\C\SITE_COD.OBJ, C:\V10001
    >> E\C\START.OBJ, C:\V10001E\C\STRINGS.OBJ, C:\V10001E\C\TEST.OBJ, C:\V10001E\ 
    >> C\UTILS.OBJ, C:\V10001E\C\ZONE.OBJ, C:\V10001E\C\TIME.OBJ TO C:\V10001E\V10
    >> 001 RS (128) PL (68) PW (78)
    
    
    *** FATAL ERROR L210: I/O ERROR ON INPUT FILE:
        EXCEPTION 0021H: PATH OR FILE NOT FOUND
        FILE: C:\V10001E\.OBJ
    
    

  • Jon
    thanks for all your help sorry for my level of ignorance on the Keil.I have just realised I have done a mess of a lot of things as I have renamed one project file yet I think all the associated are linking the ols project.
    I have never actually have had set up a compiler where I worked with the motorola all of that was done by senior engineers. I just wrote C all day sorry If I have p$$$ed you off never meant to.