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 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
Your advice is DULLY noted! Hmm such a small lack of a keyword to destroy my project. All fixed!
I am still abit confused as to why this worked in the past. Different compiler perhaps?
Ouch, thats 'sposed to be DULY not DULLY. lol. I assure you it was not dull, I did a heel click when it worked.
Thanks again sir.
And just for those who might search this later the answer is:
unsigned char xdata *port;