This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

newbie question re DATA / IDATA

I use uVision2, and am moving from 87C51 to 87C51RA2 . . . going from 128B of RAM to 512B RAM.

Was having trouble with lack of RAM in the C51 due to a large number of variables. From what I understand, in order to utilize some of the upper 128B of RAM it seems that I want to stay with the Small Memory Model, and explicitly define some variables (which are not in speed sensitive areas of the program) as IDATA type.

True ???

If I'm on track so far, is it also true that I can only specify those variables that are indirectly addressed throughout the program? Played around with it, and if I define a variable as IDATA type, it will compile, even though that variable is directly addressed (from my understanding of direct vs. inderect addressing). So I'm not sure if the compiler is smarter than me and it WILL work, or if it is not smart enough that it checks for such things?

Any suggestions as to where to get definitive info re direct vs. indirect addressing. Seems obvious at first, but on closer scrutiny, is not so clear. Haven't found a clear definition in any manuals.

About 763 more questions come to mind, but will spare you for now . . .

Thanks
Scott Kelley