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

Parents
  • 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

Reply
  • 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

Children
  • 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.

  • I have in this project
    link.ctl
    but no .lin file
    what is the difference between these 2?
    I posted what I thought was the linker file but now I think I may have been wrong all along.
    Here are the files and folders as listed in widows explorer with their extensions
    from the original file I have been working from.

    Top folder is V10001e
    inside this I have
    C folder
    h folder
    d ms-dos batch file
    link.bak
    link.ctl
    o.bat
    v10001.ABS
    v10001.LER
    V10001.prj
    V10001e.abs
    V10001e.hex
    v10001e.M51

    why some file end with e and why some don't I am not sure.
    Is there a linker file here??