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.
Since Keil (as opposed to some other compilers) do not supply the library in source, I have a question: I am tasked with debugging some glitches in a very strange design: External memory is used and ALE is disabled. To access external RAM one must latch the low address in an external latch by toggling a p1 pin before executing external RAM access (movx). My question thus is: do the routines in C51S EVER execute movx. I have no possibility of replacing thousands of hardware units, and already have the next version concept so I need the above question answered. Thanks in advance Erik
The ALE is actually not connected in this @#$%^& design. I have disassembled the code and found a few cases using CLODPTR, an undocumented "shortcut subroutine" which actually uses MOVX. I am not criticising the compiler, who in his right mind would design a compiler anticipating such a design, I am only looking for help in the hunt for the unknown MOVX'es.
Well, the small model just means that everything defaults to being in DATA - the user is still free to declare things in PDATA, XDATA, etc should the need (or whim) arise. Therefore the Library must support access to XDATA etc; eg, if you define a big string in XDATA, you still want your small-model printf to be able to print it. (OK, maybe not a brilliant example, but you get the idea?) So the Small Library shouldn't use XDATA for its own purposes, but should be able to handle any such requests which the user may make of it