Not enough memory to declare global variable.

Hi All,

My MCU can't support me to declare large enough memory to store my byte arrary data, what can I do?

Could you please advice?

Thank you very much!

Best regards, Boki.

Reply to
bokiteam
Loading thread data ...

Stating the obvious, use a different processor, add more memory, or optimise your program.

  • Can you analyse your code to see if any variables can use smaller data types (bits for Booleans rather than bytes, etc), or
  • Share a memory location (i.e. are variables used in a mutually exclusive way so can be overwritten), or
  • Does all the global data really need to be global? or
  • Can you work with a smaller stack allocating more RAM to global data?

If you get down to this then i would suggest your application is not supportable on your current hardware, and you are on a hiding to nothing anyway.

Good luck!

Richard.

formatting link

Reply to
Richard

I think we need some more details on your problem; what memory are you short on, RAM, ROM ? What kind of data do you need to store, and how do you want to access it ? Apart from adding memory (which might or might not be possible on your platform) you could try some tricks with compression or storing your data in another way.

--
:wq
^X^Cy^K^X^C^C^C^C
Reply to
Ico

With lots of unused cpu power, you could consider compressing the memory contents.

Rene

Reply to
Rene Tschaggelar

Buy a bigger one.

HTH HAND.

pete

--
pete@fenelon.com "there's no room for enigmas in built-up areas" - HMHB.
Reply to
Pete Fenelon

Ah, the ever-cryptic Boki strikes again. Details?

Best regards, Spehro Pefhany

--
"it's the network..."                          "The Journey is the reward"
speff@interlog.com             Info for manufacturers: http://www.trexon.com
 Click to see the full signature
Reply to
Spehro Pefhany

Hire somebody with a clue.

--
Grant Edwards                   grante             Yow!  I feel partially
                                  at               hydrogenated!
 Click to see the full signature
Reply to
Grant Edwards

Figure out how much memory you need before choosing the micro.

Reply to
Mike Harrison

Always a challenge.......

martin

Reply to
martin griffith

Reply to
rTrenado

schreef in bericht news: snipped-for-privacy@g49g2000cwa.googlegroups.com...

That's always the problem with arrary data. It's too much and it don't fit.

--
Thanks, Frank.
(remove 'q' and '.invalid' when replying by email)
Reply to
Frank Bemelman

Clear procedure to improve problem.

Thanks a lot.

Best regards, Boki.

Reply to
bokiteam

but, there are no too many similar data ...

and I have to program the algorithm first, and it also occupy memory, am I right? :)

Best regards, Boki.

Reply to
bokiteam

In fact, it is not a MCU.

it is a RF CHIP, and can run C language.

Best regards, Boki.

Reply to
bokiteam

Hi All,

I foudn the chip provides programmer to use a function to allocate a memory block and return a pointer, when I got a pointer, I don't know how to assign variable continually,

/* GetPointer(T) is a function that allocate memory size (T) and return the pointer(byte) */ ex: Now, I have to assign data as:

unsigned char *A = 0; A = (unsigned char *)GetPointer(255);

A[0]=123; A[1]=312; ... ... A[255]=xxx;

Is that the only way? Thank you very much for your kindly advice!

Best regards, Boki.

Reply to
bokiteam

Hello Boki,

Please, *please* quote the appr> but, there are no too many similar data ...

We might be able to help you with this, but you still have to provide some details for that. What kind of project are you working on, what processor are you using, how much RAM/ROM/FLAST/etc is available there, what data are you trying to store, etc etc

Ofcourse, but there's different kinds of memory; since we do not know anything about your platform, we can not give you any hints on decreasing code or data size. If you want help, tell us more.

--
:wq
^X^Cy^K^X^C^C^C^C
Reply to
Ico

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.