From the data sheet, it says the Atmel AT89C51CC03 has 256 bytes RAM and 2048 byte ERAM. When I use Keil compile my code, at the end, Keil says data = 105, xdata = 2285...
There is no other warning, but should xdata be less than 2048? I am just wondering if this is the root cause of my problem.
Thanks,
"Annual income twenty pounds, annual expenditure nineteen pounds nineteen and six, result happiness. Annual income twenty pounds, annual expenditure twenty pounds ought and six, result misery." See, for example: en.wikipedia.org/.../Wilkins_Micawber
Yes: whenever your usage is in excess of your available resources, there will be trouble ahead...
AT89C51CC03 parameter: 8051 based CMOS controller with PCA, Dual DPTR, WDT, 10 Bit ADC, Full CAN, 40 MHz High-Speed Architecture, X2 function, 32+2 I/O lines, 3 Timers/Counters, 14 Interrupts/4 priority levels, 64K FLASH, 2K EEPROM, 256 Bytes on-chip RAM, additional 1K XRAM
There is only 1K XRAM. 2K EEPROM, which can’t be written with the xdata. I only used the AT89S52, AT89C2051. I encounter a problem about the flash volume just like you several months ago. I wrote a large program and compiled it. But the code of .HEX file was more the 2K flash. So the download software warned that my IC was failed to download the file. At last I changed the IC and replaced the IC by the AT89S52. Maybe you can decrease the variable vectors in the area of XRAM. By the way, what’s the retail price of the IC of AT89C51CC03? Is it more expensive than the IC of AVR ATmega64 or not? I haven’t used it.
Thanks for the advice. I thought that may cause the problem, but was surprised Keil wouldn't give any warning.
The problem, in my case, is that most of the variables are used to drive a Profibus ASIC chip and this driver was developed by Siemens years ago. I really don't want to spend time to hack/modify their driver, so I guess I will have to add external memory or pick a different 8051 has more RAM.
How can they you could have 64K of Xdata. just because the chip only has 2K does not mean you are using it. You could have an external RAM. They the warning would be annoying and wrong.
Indeed: you need to configure the Project to match your hardware - then you will get appropriate warnings!