This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

DATA segment issue - solution required

Hi All,

I am using keil with the following settings

Target Device : Atmel 89C52
memory model : small - variables in data
code rom size : large 64k program
(It has 256 bytes on chip ram )

This is my code,

#include <reg52.h>
unsigned char data Array[180];
void main()
{ int i ;
for ( i = 0; i < 180; i++) Array[i] = 0 ;

.....
.....
}

DATA segment too large is the error.

please note that

I DONT have any RAM interfaced to the controller to use xram space for variables .

I am in a requirement to use the array without reducing its size.

can anyone re-solve this issue ?

Thanks in advance,
Anis

Parents
  • Thanks Dan Henry ..Its working :-)

    Great. Do you also understand why this solves your problem ? You will need to know this or you will run into the next memory-related problems in about five minutes.

    It is 8052 and then why it is neccessary to specify it has 256 bytes on chip ram. ?

    Because on-chip ram is not the same as data memory. Even internal RAM is not the same as data memory.

    The term "data memory" refers explicitly to the first 128 bytes of internal RAM. Follow the links to the '51 'bible' posted above.

Reply
  • Thanks Dan Henry ..Its working :-)

    Great. Do you also understand why this solves your problem ? You will need to know this or you will run into the next memory-related problems in about five minutes.

    It is 8052 and then why it is neccessary to specify it has 256 bytes on chip ram. ?

    Because on-chip ram is not the same as data memory. Even internal RAM is not the same as data memory.

    The term "data memory" refers explicitly to the first 128 bytes of internal RAM. Follow the links to the '51 'bible' posted above.

Children
No data