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

Keil Compilation issue with linking OBJECT FILE "FILE: RAM.OBJ"

Hi,

I'm trying to upgrade the Compilation Process followed in my old code which was working with 16-bit keil compiler ,now with 64-bit keil compiler.Following are the steps done below:

  1. Installed licensed keil 64-bit c51 version.
  2. copied the C51,A51,BL51,0H51 binaries to my project folder.
  3. provide the compilation of each file in .bat script.
  4. Now while executing the script i'm getting below error:
    *** FATAL ERROR L218: NOT AN OBJECT FILE
    FILE: RAM.OBJ
  5. But i'm  able to generate the RAM.OBJ file.

Please help me understand where I'm missing the compilation process.

REM  COMP_AS.BAT - THIS BATCH FILE WILL BURN AN EEPROM FOR
REM                 THE M840A ACCUSPEED ENCODER.

rem ECHO OFF
SET PATH=C:\ASPEED\AE\BurnAspd
SET TMP=C:\ASPEED\AE\WORKF
SET C51LIB=C:\ASPEED\AE\BurnAspd
SET C51INC=C:\ASPEED\AE\BurnAspd

DEL STARTUP.OBJ
A51 STARTUP.A51
timeout.exe 10

DEL RAM.OBJ
CX51.exe RAM.C OBJECT(RAM.OBJ)
timeout.exe 10

DEL MAIN.OBJ
CX51.exe MAIN.C OBJECT(MAIN.OBJ)
timeout.exe 10

DEL SRESET.OBJ
CX51.exe SRESET.C OBJECT(SRESET.OBJ)
timeout.exe 10

DEL IO.OBJ
CX51.exe IO.C OBJECT(IO.OBJ)
timeout.exe 10

DEL FREQ.OBJ
CX51.exe FREQ.C OBJECT(FREQ.OBJ)
timeout.exe 10

DEL TIMER1.OBJ
CX51.exe TIMER1.C OBJECT(TIMER1.OBJ)
timeout.exe 10

DEL BUILD.OBJ
CX51.exe BUILD.C OBJECT(BUILD.OBJ)
timeout.exe 10

DEL SCAN.OBJ
CX51.exe SCAN.C OBJECT(SCAN.OBJ) 
timeout.exe 10

DEL PE3291.OBJ
CX51.exe PE3291.C OBJECT(PE3291.OBJ) 
timeout.exe 10

DEL XMIT_RAD.OBJ
CX51.exe XMIT_RAD.C OBJECT(XMIT_RAD.OBJ)
timeout.exe 10

DEL ATOD_LEV.OBJ
CX51.exe ATOD_LEV.C OBJECT(ATOD_LEV.OBJ)
timeout.exe 10

DEL BCH.OBJ
CX51.exe BCH.C OBJECT(BCH.OBJ)
timeout.exe 10

DEL EEPRM.OBJ
CX51.exe EEPRM.C OBJECT(EEPRM.OBJ)
timeout.exe 10

DEL DIAGNOST.OBJ
CX51.exe DIAGNOST.C OBJECT(DIAGNOST.OBJ)
timeout.exe 10

ECHO.
ECHO.
ECHO M840A ACCUSPEED CONTROL PROCESSOR
ECHO LINKING OBJECT FILES ...
timeout.exe 10
BL51 @LK_AS > ERRORMSG.TXT
IF ERRORLEVEL 3 GOTO FATAL
IF ERRORLEVEL 2 GOTO ERRORS
IF ERRORLEVEL 1 GOTO WARNINGS
BL51 @LK_AS

ECHO.
ECHO.
ECHO M840A ACCUSPEED CONTROL PROCESSOR
ECHO BUILDING FIRMWARE HEX FILE ...
timeout.exe 10
OH51 ACUSPD > ERRORMSG.TXT
IF ERRORLEVEL 3 GOTO FATAL
IF ERRORLEVEL 2 GOTO ERRORS
IF ERRORLEVEL 1 GOTO WARNINGS
OH51 ACUSPD

ECHO.
ECHO.
CLS
ECHO ACUSPD.HEX IS COMPLETE!
ECHO 0 > ERRORLVL.TXT
ECHO SUCCESSFUL COMPILE!
GOTO EXIT

REM *************************************************************************

:WARNINGS
ECHO THE PROGRAM CONTAINS A WARNING(S)
ECHO 1 > ERRORLVL.TXT
GOTO EXIT

REM *************************************************************************

:ERRORS
ECHO THE PROGRAM CONTAINS AN ERROR(S)
ECHO 2 > ERRORLVL.TXT
GOTO EXIT

REM *************************************************************************

:FATAL
ECHO THE PROGRAM CONTAINS A FATAL ERROR(S)
ECHO 3 > ERRORLVL.TXT
GOTO EXIT

REM *************************************************************************

:EXIT
ECHO.
ECHO.
CD ..
CLS

REM **************************** END OF FILE ********************************

Regards,

kaushendra sah

Parents
  • I have copied the C51,A51,BL51,0H51 binaries where my .bat file is executing

    Why would you do that? Windows executables are not generally intended to be copied about the place willy-nilly.

    The usual approach would be to either set the PATH variable (if the Keil installation didn't already do that), or to use fully-qualified pathnames in your .BAT file.

    can you let me know the process to raise the support case with keil?

    Did you not get details of that with your product?

    It's not hard to find:

    I'm able to generate the object file with my 64-bit compiler

    Perhaps it's messed-up due to copying the binary?

Reply
  • I have copied the C51,A51,BL51,0H51 binaries where my .bat file is executing

    Why would you do that? Windows executables are not generally intended to be copied about the place willy-nilly.

    The usual approach would be to either set the PATH variable (if the Keil installation didn't already do that), or to use fully-qualified pathnames in your .BAT file.

    can you let me know the process to raise the support case with keil?

    Did you not get details of that with your product?

    It's not hard to find:

    I'm able to generate the object file with my 64-bit compiler

    Perhaps it's messed-up due to copying the binary?

Children
No data