Topic : File is missing, during compilation

Forum : 8051

Original Post
Post Information Post
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

Replies
Post Information Post
+1
0
-1
September 25, 2012 - 10:47am
Guest

Dear Stéphane,

Stephane wrote:
1. RI bit state. If it stays at 0, no data received. A baud-rate trouble?

The RI bit I check inside the ISR, read the received data and set it back to 0. But the interrupt is never activated.

Stephane wrote:
2. Is the interrupt number correct: void myroutine ( void ) interrupt 4 {...}.
(0: ext0, 1: timer0, 2: ext1, 3: timer1, 4 UART...).
Address is 3 + 4 * 8 = 23H

Yes, here is my function:
void UART0_ISR (void) interrupt 4 using 1
{
    if (RI0)
    {
        // do something
        RI0 = 0;
    }
}

Stephane wrote:
3. REN, EA and ES must be at 1.

I have checked it, yes all 3 bits are set to 1.

Regards,
Daniel

+1
0
-1
September 25, 2012 - 11:12am
Raisonance Support Team

Daniel,

In your main loop, does value RI0 change?

Stéphane

+1
0
-1
September 25, 2012 - 11:40am
Guest

Dear Stéphane,

no, RI0 never changes although I send data.

Might be there a crossbar configuration problem?

Regards,
Daniel

+1
0
-1
September 25, 2012 - 12:02pm
Guest

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:

#define XTAL_FREQUENCY 29491200
#define USE_PLL

#define PLL_DIV 1
#define PLL_MUL 3

#ifdef USE_PLL
    #define SYSCLK XTAL_FREQUENCY / PLL_DIV * PLL_MUL
#else
    #define SYSCLK XTAL_FREQUENCY
#endif

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:

CKCON = 0x10; // Timer0/1 with SYSCLK
TH1      = -(SYSCLK / baudr / 16);

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

+1
0
-1
September 26, 2012 - 10:39am
Guest

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

+1
0
-1
September 26, 2012 - 3:31pm
Raisonance Support Team

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

+1
0
-1
September 28, 2012 - 12:52pm
Guest

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

+1
0
-1
October 1, 2012 - 3:59pm
Raisonance Support Team

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

+1
0
-1
October 4, 2012 - 11:26am
Guest

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