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

Stack overflow.. please suggest

Iam using keil version-2 compiler, AT809c51Rd2 microcontroller.

Iam using both ".C" and ".asm" files in my project.
I wrote my program by considering small memory model in both assembly and c files.

Now iam facing "Address space overflow" error. As per my understanding RAM area is not having enough space to fit all my data variables.

I tried by changing memory model from SMALL to LARGE and compiled.Now my assembly files wont support this memory model(because of indirect addressing). If this is the case, whether i must do modifications in assembly file? or please sujjest me if any alternative is there?

Is it possible by keeping mine as SMALL memory model and to shift Stack to extended RAM.

Parents
  • You said: "...Now I am facing "Address space overflow" error. As per my understanding RAM area is not having enough space to fit all my data variables."

    Please post the original full error message.

    It should look something like this:

    *** ERROR L107: ADDRESS SPACE OVERFLOW
        SPACE:   DATA
        SEGMENT: _DATA_GROUP_
        LENGTH:  0014H
    

    If you are receiving this error for the DATA space, you need to follow the instructions in this KB article:

    http://www.keil.com/support/docs/1241.htm

    Instead of changing the memory model, move some of your data variables to XDATA. Use the XDATA keyword when you define your global variable, or use the XDATA linker directive. See:

    http://www.keil.com/support/man/docs/bl51/bl51_xdata.htm

    Also under project -> Options for Target -> 'Target' tab, do you have 'Operating System' set to 'None'?

Reply
  • You said: "...Now I am facing "Address space overflow" error. As per my understanding RAM area is not having enough space to fit all my data variables."

    Please post the original full error message.

    It should look something like this:

    *** ERROR L107: ADDRESS SPACE OVERFLOW
        SPACE:   DATA
        SEGMENT: _DATA_GROUP_
        LENGTH:  0014H
    

    If you are receiving this error for the DATA space, you need to follow the instructions in this KB article:

    http://www.keil.com/support/docs/1241.htm

    Instead of changing the memory model, move some of your data variables to XDATA. Use the XDATA keyword when you define your global variable, or use the XDATA linker directive. See:

    http://www.keil.com/support/man/docs/bl51/bl51_xdata.htm

    Also under project -> Options for Target -> 'Target' tab, do you have 'Operating System' set to 'None'?

Children