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

code size

I made a small test program to test the AT89C2051 controller board. Project is created with startup file in keil. program is getting compiled but not running from controller.

hex code is generated beyond 0x7FF location. that is most of the code is located at 0x800 location. but controller memory range is 0-7ff only. how to relocate main function with in 0x7ff range? because first instruction at 0th location is jumping to 800 location

i think due to this controller is not running. but its working in simulation mode. please help to sort out this issue.

code is here:
int main(void)
{

while(1) { P0=0x55; P0=0xAA; }

}

  • The evaluation version of the compiler explicitly moves the code like this - it is documented if you read the limitations for the evaluation version.

    This reduces peoples interest in trying to do commercial projects with the evaluation version in case their program is small enough to compile with the eval version.

  • how to relocate main function with in 0x7ff range?
    contact Keil sales and buy the full version.

    Note the 'licence' for the eval states "not for commercial purposes"; however, if you ar an amateur just interested in small stuff, just buy a micro that has code memory of 16k or more.

    Erik