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.
Hello everyone,
I am using an 8051W device with uVision V4.02, working with an external C Tester and it's not recognizing the terms "idata" or "xdata". While I can create workarounds to this (ie make a specific compilation without these included), I'm trying to find a way to do this correctly.
When I searched through all the include files, the closest I can find to any references to IData is a line in my ISD51.H file that says:
#define RAMSIZE 0x100 // default is 0x100 => 256 bytes IDATA RAM
Unfortunately, this doesn't really declare it in a way that would be understandable to a universal C checker. I'm guessing the declaration of IData is something specific to the framework of Keil (though I could be wrong).
Does anyone know how to get the declaration of idata in universal terms that I might be able to place into the C tester that might declare what IData is in terms an external tester might recognize? (example: if I had a special variable, say, slong32 that one compiler recognized but the tester did not, I could add "typedef signed long slong32" and it would resolve the issue).
It's possible I just need to create a workaround but I thought you guys are the experts and might be able to point me the right direction.
I apologize if I left out any important information in order to answer this question. If I missed anything, please let me know and I'll try and find that information. Thanks!
Per,
Thanks for the your reply. That's about what I figured, since it's not declared in the include files. It makes sense that it's part of the framework on the compiler level.
I'm actually looking to just create loops that say, basically:
#if(Keil Compiler) unsigned char idata tempvar = 0; #else if(C++ Tester) unsigned char tempvar = 0; #endif
I think this should work as a workaround but I was just exploring my options to see if there's a way to declare it locally. I will try the #define statements as well and see if that works.
Thanks again for the help!