I have recently downloaded quicksense studios for use in a capacitive sensing application. After using their utility to generate a lot of the needed source code, I decided to try and assemble and build the project using c51. I used the ax51 assembler, the cx51 compiler, and the lx51 linker. Eventually I managed to get the filed to assemble and compile, generating the needed object files. When I attempt to link them however, I keep getting this error:
@C:\Users\_I_\Documents\tc\test3\cyglink.txt "C:\Users\_I_\Documents\tc\test3\QS_Config.obj", "C:\Users\_I_\Documents\tc\test3\QS_DeviceInit.obj", "C:\Users\_I_\Documents\tc\test3\QS_Main.obj", "C:\Users\_I_\Documents\tc\test3\QS_Threshold_Cal.obj", "C:\Users\_I_\Documents\tc\test3\QS_F99xRoutines.obj", "C:\Users\_I_\Documents\tc\test3\QS_Baselining.obj", "C:\Users\_I_\Documents\tc\test3\QS_Core.obj", "C:\Users\_I_\Documents\tc\test3\QS_Events.obj", "C:\Users\_I_\Documents\tc\test3\QS_Exp_Averager.obj", "C:\Users\_I_\Documents\tc\test3\QS_Groups.obj", "C:\Users\_I_\Documents\tc\test3\QS_Memory.obj", "C:\Users\_I_\Documents\tc\test3\QS_nDPad.obj", "C:\Users\_I_\Documents\tc\test3\QS_Timing.obj", "C:\Users\_I_\Documents\tc\test3\QSCI_Memory.obj", "C:\Users\_I_\Documents\tc\test3\QSCI_Memory_lite.obj", "C:\Users\_I_\Documents\tc\test3\QSCI_Core_Lite.obj", "C:\Users\_I_\Documents\tc\test3\QSCI_UARTRoutines_lite.obj" TO "C:\Users\_I_\Documents\tc\test3\test3" RS(256) PL(68) PW(78) CODE(0, ?CO?QS_CONFIG(0x100)) *** ERROR L204: INVALID KEYWORD POS: 1054 Routines_lite.obj TO C:\Users\_I_\Documents\tc\test3\test3 RS
I do not understand why it is registering as an invalid keyword. I decided to try using bl51 instead. I got a different error message:
"C:\Users\_I_\Documents\tc\test3\QS_Config.obj", "C:\Users\_I_\Documents\tc\test3\QS_DeviceInit.obj", "C:\Users\_I_\Documents\tc\test3\QS_Main.obj", "C:\Users\_I_\Documents\tc\test3\QS_Threshold_Cal.obj", "C:\Users\_I_\Documents\tc\test3\QS_F99xRoutines.obj", "C:\Users\_I_\Documents\tc\test3\QS_Baselining.obj", "C:\Users\_I_\Documents\tc\test3\QS_Core.obj", "C:\Users\_I_\Documents\tc\test3\QS_Events.obj", "C:\Users\_I_\Documents\tc\test3\QS_Exp_Averager.obj", "C:\Users\_I_\Documents\tc\test3\QS_Groups.obj", "C:\Users\_I_\Documents\tc\test3\QS_Memory.obj", "C:\Users\_I_\Documents\tc\test3\QS_nDPad.obj", "C:\Users\_I_\Documents\tc\test3\QS_Timing.obj", "C:\Users\_I_\Documents\tc\test3\QSCI_Memory.obj", "C:\Users\_I_\Documents\tc\test3\QSCI_Memory_lite.obj", "C:\Users\_I_\Documents\tc\test3\QSCI_Core_Lite.obj", "C:\Users\_I_\Documents\tc\test3\QSCI_UARTRoutines_lite.obj" TO "C:\Users\_I_\Documents\tc\test3\test3" RS(256) PL(68) PW(78) CODE(0, ?CO?QS_CONFIG(0x100)) *** FATAL ERROR L218: NOT AN OBJECT FILE FILE: C:\Users\_I_\Documents\tc\test3\QS_Config.obj
However, when I go and check this directory, all the corresponding object files have been generated.
what am I missing? Any and all help is appreciated.
Is RS a valid keyword?
As far as I know, yes. I have seen it used in other codes that use both the lx51 and the bl51 linker. The utility which generates all this code also bases it on the type of assembler, linker, and compiler that the user inputs.
http://www.keil.com/support/man/docs/lx51/lx51_ln_dirref.htm
http://www.keil.com/support/man/docs/bl51/bl51_ramsize.htm
*** FATAL ERROR L218: NOT AN OBJECT FILE FILE: C:\Users\_I_\Documents\tc\test3\QS_Config.obj should be self explanatory. However, by "Keil tradition" it c an mean anything related to the file
is it the quotes, I do not recall them (currently not running commandfile)
1) in windows explorer delete the file at the exact path "C:\Users\_I_\Documents\tc\test3\QS_Config.obj", 2) compile/assemble the source for QS_Config 3) if any errors/warnings, get rid opf them and go to 2) 4) vrify that QS_Config.obj indeed ended up at C:\Users\_I_\Documents\tc\test3\
Erik
View all questions in Keil forum