Hi everybody,
I wrote simple program for 89c2051:
#include <REG2051.H>
#include <stdio.h>
sbit blinky = P1^3 ;
void main (void) {
while (1) { blinky = 0; blinky = 1;
}
But after compilation, debugger run (after long jmp) from 0800h (89c2051 have a flashe 2k only), so my program out of memory. How to force run program in available memory. (I work in evaluation mode - 2k memory code)
Thanks
"How to force run program in available memory. (I work in evaluation mode - 2k memory code)"
That would be the same as asking "how can I circumvent the license limit".
The evaluation version supports up to 2kB of code. But since there exists chips with just 2kB code, Keil has explicitly added a logic for the tools no ignore the first two kB of the chip. This makes sure that a user that wants to use the Keil tools commercially in a product that only needs a 2kB chip would want to pay for a commercial license.
Thank you Per. Best regards
Which is clearly & explicitly stated in the Limitations for evaulation versions - 4th & 5th bullet points for "C51 Evaluation Tools":
The startup code generated includes LJMPs. Code generated cannot be used in single-chip devices that support 2 Kbytes or less of program space.
Programs start at offset 0x0800. Programs generated with the evaluation software may not be programmed into single-chip devices with less than 2 Kbytes of on-chip ROM.
http://www.keil.com/demo/limits.asp
It always pays to check the licence terms - especially the limitations of free trial or evaluation versions...
Ok Andrew, it is my mistake. Thank you.