 External RAM & EPROM Chris Conn Hi All. Its hard for me to determine where to start asking my question. I understand you wont be able to tell me whats specifically wrong, but if you could help give me some ideas of issues to check, I would greatly appreciate it. Ok, we have a project which consists of Intel 80c321, RAM, 256Eprom and a memory mapped FPGA. Originally, the project was compiled by Achimedes (bought by Keil). This project is well before my time and all the original engineers are gone. I compile my code with no problems (other than a few expected compiler warnings). The system starts up which is apparent because I have a serial link to the device. What does not appear to be happening is the proper interaction with the FPGA. I imagine there is an issue with my XDATA configuration. I was not sure if banking was used although I doubt it. If the banking were used shouldnt I expect HDATA in the map file? I have not changed any code from the original source yet so that leads me to believe this is a 'setting' issue. There are definitions like: static unsigned char xdata IOActuatorPort _at_ 0xB000; Then we access them using:
unsigned char IOReadPort(unsigned int addr)
{
unsigned char *port;
port = (unsigned char *) addr; /* Assign the address to the memory pointer. */
return(*port); /* Read the memory and return the value to caller. */
}
void IOWritePort(unsigned int addr, unsigned char value)
{
unsigned char *port;
port = (unsigned char *) addr; /* Assign the address to the memory pointer. */
*port = value; /* Write the data to the memory location. */
}
I have the source and a version that was compiled already (along with map file, etc) that works. Is there any comparison I can do between the old/new MAP files? I imagine not since this is a different version of compiler... no doubt it would be different. Thanks in advance for any insight you can give me into this issue! Chris |