September 14, 2012 - 6:26pm
Guest |
Hello together,
I am using RKitE-51 with SiLabs C8051F120.
I tryed to compile my Firmware, but I get always following Error Message after Build is complete with no Errors and no Warnings.
Here is the Build-Log:
----------------Make Started: 'Firmware' in configuration 'Standard'--------------------------
Building D:\Firmware\V2.2.67 Ride\Firmware.rapp
due to missing D:\Firmware\V2.2.67 Ride\Firmware.aof
Running: 80C51 Linker
"C:\Raisonance\Ride\Bin\LX51.EXE" "D:\Firmware\V2.2.67 Ride\additional_func.obj","D:\Firmware\V2.2.67 Ride\FlashPrimitives.obj","D:\Firmware\V2.2.67 Ride\FlashUtils.obj","D:\Firmware\V2.2.67 Ride\high_level.obj","D:\Firmware\V2.2.67 Ride\Init_Hardware.obj","D:\Firmware\V2.2.67 Ride\low_level.obj","D:\Firmware\V2.2.67 Ride\main.obj","D:\Firmware\V2.2.67 Ride\shared_functions.obj","D:\Firmware\V2.2.67 Ride\STARTUP.obj","D:\Firmware\V2.2.67 Ride\init.obj" TO("D:\Firmware\V2.2.67 Ride\Firmware.aof") LIBPATH("C:\Raisonance\Ride\Lib\51") LIBPATH("C:\Raisonance\Ride\Lib\51\CCLIB") GENERATEDEPFILE MAP IX RS(256) RSI(128) CSIZE(65536) XSIZE(8192) DEFN(XSTACKLEN,256) DEFN(TIM1_INIT,E8h) CO(0) DT(0) ID(0) XD(0) BI(0) ABSCODEOFFS(0) POSTOPTI XMLM(Yes,"D:\Firmware\V2.2.67 Ride\Firmware-modules.Standard.xml") BANKAREA(8000h,FFFFh) USEXSTACK XMLF(No,8000,"D:\Firmware\V2.2.67 Ride\Firmware-flash.Standard.xml")
MS-DOS MCS-51 CODE BANKING LINKER/LOCATOR LX51 V06.14.12.087 Dongle not detected
Copyright (c) Raisonance S.A.S. 1987-2012. All rights reserved.
***FATAL ERROR 208 : INVALID FILE NAME
(D:\FIRMWARE\V2.2.67 RIDE\FIRMWARE-MODULES.STANDARD.XML)
LINK/LOCATE RUN COMPLETE, 1 ERROR FOUND.
Error Code: 1
Build failed
------------------------------------------------------------------------------------------------------------------------------------------
It is missing the File FIRMWARE-MODULES.STANDARD.XML
I think the Compiler has to generate this File or do I have to do that? And if yes, what should I have to write in this File?
I hope anybody can Help me.
Have a nice Weekend.
Best regards
Daniel
|
Dear Stéphane,
The RI bit I check inside the ISR, read the received data and set it back to 0. But the interrupt is never activated.
Yes, here is my function:
I have checked it, yes all 3 bits are set to 1.
Regards,
Daniel
Daniel,
In your main loop, does value RI0 change?
Stéphane
Dear Stéphane,
no, RI0 never changes although I send data.
Might be there a crossbar configuration problem?
Regards,
Daniel
Dear Stéphane,
I think I found the error:
I have a macros.h wich is included in init_hardware.c, and inside the macros.h are some definitions:
When I take the SYSCLK to a watch-window in debug mode, there is only a description that this symbol is not defined.
The problem is, I use this SYSCLK to configure timer1 to generate the baudrate with following equation:
Because apparently SYSCLK is not defined, there is an error in the configuration of Timer1. I checked the TH1 in the watch-window and this register is always 0.
Regards,
Daniel
Dear Stéphane,
the timer for baudrate generation is now in the right configuration,
but the interrupt for UART0 is still not activated.
What can I do now?
Regards,
Daniel
Daniel,
Your problem is obviously a wrong baudrate. You should try to implement first a "putchar" function (without interrupt), and you could check the baudrate with a scope on the Tx pin.
Stéphane
Dear Stéphane,
I checked it with a send routine and the bytes I receive on the pc are all correct, so I think the baudrate is correct.
But if I send some bytes to the controller the interrupt 4 is not activated.
Best regards,
Daniel
Daniel,
I'm sorry but I can't see how to help you (even our 8051 guru doesn't know).
Did you try to contact the Silabs support?
Regards,
Stéphane
Dear Stéphane,
I found the Error. It was my own mistake.
I have a direct connection from RX to the reset pin of the controller and between this line I have a switch.
I forgot to open this switch, so the problem was that every incoming communication has reset the controller.
The reason for this is, I can swith the controller in a deep sleep mode for most energy saving and then I can wake up the controller by sending something on the UART.
Have many thanks for the support.
Best regards,
Daniel