We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi, I like to simulate the program larger than 8KB via Keil monitor, and separate the functions and constant data and put constant data to a extra eeprom.
The steps I did are as follows. 1. My test board has a eeprom for bank-switching. 2. Genrated 2 hex file, bank 1 and common area. (xxx.hex and xxx.h00) 3. Loading xxx.h00 to the eeprom early. 4. Using "Start the debug session" to start the simulation.
Got a Monitor Error and "illegal write access at CODE address ...etc."
Please give a help. Tks.
"I like to simulate the program larger than 8KB"
The only reason for an 8K restriction is if you are using one of the limited versions; eg, the free evaluation or the LPC studio.
If you need to handle bigger programs than the limits of your restricted version, then you just need to buy an unrestricted version. Simple as that.
Contact Keil sales, or your local distributor: http://www.keil.com/company/contact.asp?bhcp=1
How to identify the version of Keil tool?
Could u tell me if my produres is ok for a larger program? Please give a reply.
If you want me to take the effort to make a reply, you need to take the effort to type "you" in full - "u" is just being lazy.
Sorry for that. Please give a rely. Thanks.
Why do you want to mess about with banking for only 8K?
Would it not just be far easier to choose a chip with sufficient resources for your application?
8K is quite small as 8051s go these days.
http://www.keil.com/dd/search_parm.asp
Thanks. For the design, I like to use 89C51 and a EEPROM to implement it and don't know how to use Keil tool to simulate my program. This one is really confued with me because no enough information can be got.
Please clarify precisely what you mean by "EEPROM" in this context:
"EEPROM" is usually taken to mean the type of device designed for non-volatile data storage - often with a serial interface. The key feature of this kind of device is the ability to write individual bytes.
Electrically-Erasable PROMs designed for code storage are usually referred to as "Flash", and usually have a parallel bus interface.
"I like to use 89C51"
That is not a full part number!
You need to give the complete part number - including all prefix & suffix letters & numbers; eg
P89C51RA2xx has 8K Flash: http://www.keil.com/dd/chip/3391.htm
P89C51RB2xx has 16K Flash: http://www.keil.com/dd/chip/3214.htm
and there are many more
"EEPROM" that I meant is what you mention to "flash". I use 27c512 (64KB) to store the constant data.
Yes, you're right. "89C51" is ATMEL AT89C52. And "EEPROM" is winbond w27c512.
"I use 27c512"
That's not even electrically-erasable, is it?
A 27C512 is an old UV-Erasable PROM, isn't it?
ie, you have to put it into a UV eraser before you can re-program it?
You're right - it is electrically-erasable!
www.winbond.com/.../PDFResult.asp
So, you basically have a standard 8051-with-external-CODE-memory system.
You have a full 64K of code memory - there should be no reason to do any cunning tricks to fit your 8K code into this memory! You should have plenty of room!
What exactly are you trying to do?
"You're right - it is electrically-erasable!"
But note that it requires special high voltages (14V and 12V) for erasing and programming.
So this is (probably) not practical for in-system programming.
Modern chips sold as "Flash" (usually) require only the standard power supply (5V, 3V3, or whatever).