I am programming AT89C2051 in uVision2. I am using programmer PG302. When I flash controller with hex file created using Assembler, everything is OK. But when I flash controller with hex file created using C51, I get message "Device not equal to file" (in PG302). I don't know what to do, please help if you know how. (My C51 code is OK, error is probably in created hex file, because it is about 3 times bigger than file created using Assembler (for the same function)).
"problem can't be in limitations or program size because it's very small program" Wrong. It's not just the size that matters - it's where you put it! Look at your map (Linker Listing) file, and see the address range where the code it located. Then look at the address range available on the chip...
Ok, thanks for your help, I get it now. Demo generates memory offset at the beginning of code, and my atmel has olny 2k... Can someone tell me some other tool (freeware or demo that works on at89c2051 whitout restrictions) I can use to write progs in C51?
C51 is Keil's product - so you won't get that anywhere else! You could try the Keil MCB900 kit - it's only about 40 quid, and comes with a "restricted" version of the tools that does not have the offset. http://www.keil.com/mcb900/ For other cheap(er) and free tools, see: http://www.8052.com/links.phtml