EmbeddedRelated.com
Forums

Cygnal 8051F310 problem with onchip XRAM

Started by John F July 24, 2007
#include <SiLabs IDE>
#include <Keil uV II>
#include <F310 dev Board from Silabs>

Everytime I'm trying to use e.g.

    unsigned char myarray[8][25];

in a (quite trivial) application I get linkage error with adress 
space. That's OK and working correctly.

*** ERROR L107: ADDRESS SPACE OVERFLOW
    SPACE:   DATA
    SEGMENT: ?DT?VALVE
    LENGTH:  007DH

so far so good. As usual I added "xdata" and recompiled. The error is 
gone and the app is downloaded to the processor. BUT: the processor 
doesn't do anything at all. (OK... apparently nothing as I can't look 
inside :-)

Nothing I tried helped (changing memorymodel, defining XD(0-3FFH) for 
the linker ...).
The map file looks OK.

Up to now I like the cygnal stuff :-)
This is the first time I needed xdata on such a chip and now I'm 
puzzled. Been using Keil for a long time and never

Right now I'm using a truncated array to store the samples so the app 
is doing OK now.

Anyone out there to know what I overlooked?
-- 
John 


John F wrote:
> #include <SiLabs IDE> > #include <Keil uV II> > #include <F310 dev Board from Silabs> > > Everytime I'm trying to use e.g. > > unsigned char myarray[8][25]; > > in a (quite trivial) application I get linkage error with adress > space. That's OK and working correctly. > > *** ERROR L107: ADDRESS SPACE OVERFLOW > SPACE: DATA > SEGMENT: ?DT?VALVE > LENGTH: 007DH > > so far so good. As usual I added "xdata" and recompiled. The error is > gone and the app is downloaded to the processor. BUT: the processor > doesn't do anything at all.
I am not familiar with your debugger, but if it were me, I would start single stepping from the reset location and see what it shows. -- Thad
Try
unsigned char xdata myarray[8][25];
Take a look here:
http://www.keil.com/support/man/docs/c51/c51_le_intdatamem.htm
http://www.keil.com/support/man/docs/c51/c51_le_extdatamem.htm

2m

> #include <SiLabs IDE> > #include <Keil uV II> > #include <F310 dev Board from Silabs> > > Everytime I'm trying to use e.g. > > unsigned char myarray[8][25]; > > in a (quite trivial) application I get linkage error with adress space. > That's OK and working correctly. > > *** ERROR L107: ADDRESS SPACE OVERFLOW > SPACE: DATA > SEGMENT: ?DT?VALVE > LENGTH: 007DH > > so far so good. As usual I added "xdata" and recompiled. The error is gone > and the app is downloaded to the processor. BUT: the processor doesn't do > anything at all. (OK... apparently nothing as I can't look inside :-) > > Nothing I tried helped (changing memorymodel, defining XD(0-3FFH) for the > linker ...). > The map file looks OK. > > Up to now I like the cygnal stuff :-) > This is the first time I needed xdata on such a chip and now I'm puzzled. > Been using Keil for a long time and never > > Right now I'm using a truncated array to store the samples so the app is > doing OK now. > > Anyone out there to know what I overlooked? > -- > John >
2m wrote:
> Try > unsigned char xdata myarray[8][25]; > Take a look here: > http://www.keil.com/support/man/docs/c51/c51_le_intdatamem.htm > http://www.keil.com/support/man/docs/c51/c51_le_extdatamem.htm > > 2m > >> #include <SiLabs IDE> >> #include <Keil uV II> >> #include <F310 dev Board from Silabs> >> >> Everytime I'm trying to use e.g. >> >> unsigned char myarray[8][25]; >> >> in a (quite trivial) application I get linkage error with adress space. >> That's OK and working correctly. >> >> *** ERROR L107: ADDRESS SPACE OVERFLOW >> SPACE: DATA >> SEGMENT: ?DT?VALVE >> LENGTH: 007DH >> >> so far so good. As usual I added "xdata" and recompiled. The error is gone >> and the app is downloaded to the processor. BUT: the processor doesn't do >> anything at all. (OK... apparently nothing as I can't look inside :-) >> >> Nothing I tried helped (changing memorymodel, defining XD(0-3FFH) for the >> linker ...). >> The map file looks OK. >> >> Up to now I like the cygnal stuff :-) >> This is the first time I needed xdata on such a chip and now I'm puzzled. >> Been using Keil for a long time and never >> >> Right now I'm using a truncated array to store the samples so the app is >> doing OK now. >> >> Anyone out there to know what I overlooked? >> -- >> John >> > >
Did you configure the XDATA properly? Try posting at www.8052.com or Silabs 9 and note the cross post)
2m wrote:
>> #include <SiLabs IDE> >> #include <Keil uV II> >> #include <F310 dev Board from Silabs> >> >> Everytime I'm trying to use e.g. >> >> unsigned char myarray[8][25]; >> >> in a (quite trivial) application I get linkage error with adress >> space. >> That's OK and working correctly. >> >> *** ERROR L107: ADDRESS SPACE OVERFLOW >> SPACE: DATA >> SEGMENT: ?DT?VALVE >> LENGTH: 007DH >> >> so far so good. As usual I added "xdata" and recompiled. The error >> is gone >> and the app is downloaded to the processor. BUT: the processor >> doesn't do >> anything at all. (OK... apparently nothing as I can't look inside >> :-) >> >> Nothing I tried helped (changing memorymodel, defining XD(0-3FFH) >> for the >> linker ...). >> The map file looks OK. >> >> Up to now I like the cygnal stuff :-) >> This is the first time I needed xdata on such a chip and now I'm >> puzzled. >> Been using Keil for a long time and never >> >> Right now I'm using a truncated array to store the samples so the >> app is >> doing OK now. >> >> Anyone out there to know what I overlooked? > > Try > unsigned char xdata myarray[8][25]; > Take a look here: > http://www.keil.com/support/man/docs/c51/c51_le_intdatamem.htm > http://www.keil.com/support/man/docs/c51/c51_le_extdatamem.htm
Thanks. That's exactly what I did. The problem is that it compiles and links without error but doesn't work :-) -- John
Thad Smith wrote:
> John F wrote: >> #include <SiLabs IDE> >> #include <Keil uV II> >> #include <F310 dev Board from Silabs> >> >> Everytime I'm trying to use e.g. >> >> unsigned char myarray[8][25]; >> >> in a (quite trivial) application I get linkage error with adress >> space. That's OK and working correctly. >> >> *** ERROR L107: ADDRESS SPACE OVERFLOW >> SPACE: DATA >> SEGMENT: ?DT?VALVE >> LENGTH: 007DH >> >> so far so good. As usual I added "xdata" and recompiled. The error >> is >> gone and the app is downloaded to the processor. BUT: the processor >> doesn't do anything at all. > > I am not familiar with your debugger, but if it were me, I would > start > single stepping from the reset location and see what it shows.
I use the demo board with the USB interface for life debugging and do not get a connection :-) -- Johannes You can have it: Quick, Accurate, Inexpensive. Pick two.
On Jul 24, 2:55 pm, "John F" <call_0815_4...@gmx.at> wrote:
> #include <SiLabs IDE> > #include <Keil uV II> > #include <F310 dev Board from Silabs> > > Everytime I'm trying to use e.g. > > unsigned char myarray[8][25]; > > in a (quite trivial) application I get linkage error with adress > space. That's OK and working correctly. > > *** ERROR L107: ADDRESS SPACE OVERFLOW > SPACE: DATA > SEGMENT: ?DT?VALVE > LENGTH: 007DH > > so far so good. As usual I added "xdata" and recompiled. The error is > gone and the app is downloaded to the processor. BUT: the processor > doesn't do anything at all. (OK... apparently nothing as I can't look > inside :-) > > Nothing I tried helped (changing memorymodel, defining XD(0-3FFH) for > the linker ...). > The map file looks OK. > > Up to now I like the cygnal stuff :-) > This is the first time I needed xdata on such a chip and now I'm > puzzled. Been using Keil for a long time and never > > Right now I'm using a truncated array to store the samples so the app > is doing OK now. > > Anyone out there to know what I overlooked? > -- > John
Assuming you're building using the Keil tools within uVision2: Right-click on your target and choose "Options for target 'targetname'." Then, under the "target" table of the dialog that pops up, ensure that you check the box next to "Use On-chip XRAM (...)" so that the linker knows to actually use the internal RAM for things that should be put into XDATA space. That should work. -a
Andy Peters wrote:
> On Jul 24, 2:55 pm, "John F" <call_0815_4...@gmx.at> wrote: >> #include <SiLabs IDE> >> #include <Keil uV II> >> #include <F310 dev Board from Silabs>
>> *** ERROR L107: ADDRESS SPACE OVERFLOW >> SPACE: DATA >> SEGMENT: ?DT?VALVE >> LENGTH: 007DH >> >> so far so good. As usual I added "xdata" and recompiled. The error >> is >> gone and the app is downloaded to the processor. BUT: the processor >> doesn't do anything at all. (OK... apparently nothing as I can't >> look >> inside :-) >> >> Nothing I tried helped (changing memorymodel, defining XD(0-3FFH) >> for >> the linker ...). >> The map file looks OK. >>
> > Assuming you're building using the Keil tools within uVision2: > > Right-click on your target and choose "Options for target > 'targetname'." > > Then, under the "target" table of the dialog that pops up, ensure > that > you check the box next to "Use On-chip XRAM (...)" so that the > linker > knows to actually use the internal RAM for things that should be put > into XDATA space. > > That should work.
I have already added XD(0-3FFH) (I tried 0x0000-0x03FF too) to the linker commandline as uV2 does. Doesn't work :-) -- Johannes You can have it: Quick, Accurate, Inexpensive. Pick two.