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.
I just added a getchar to a program compiling as an Xsmall memory model with Large Code size. As soon as I add the getchar, I get an address space overflow in the BIT SPACE. I am not sure what this means and how to approach it's solution. Can someone shed light on this?
If you try to fit a quart into a pint pot [1], it won't fit - it will overflow The same principle applies to processor memory: Any processor has only a finite memory capacity; if you try to put in more data than the available capacity, it will overflow Possible solutions are: 1. Increase the capacity; 2. Reduce the data. In the case of the BIT space, the capacity is fixed by the processor architecture, so 1 is not an option; You will therefore have to reduce your usage of BIT space. The Linker listing (or "map") file shows your memory usage. [1] 1 Quart = 2 Pints - about a litre.
Gee, I'm not sure if your reply was meant to be humorous or pedantic and condecending. The price of asking for help, I guess. I appreciate the time and effort to respond. I realize I should have provided more detail. 1. The code before inclusion of getchar runs fine. 2. The inclusion of getchar results in a BIT ADDRESS SPACE OVERFLOW. 3. Looking at the map, only one BIT out of the 251's 00:0020H to 00:007FH BIT space is used. This is what I don't understand. I have RAM defined in that area. If I use _getkey(), the problem goes away and, I guess, I could ignore it. It would be nice to have an insight into why a single BIT usage generated a OVERFLOW.
Hmmmm, Is it possible that you told the compiler/linker to use the BIT space for something else AND now that you are trying to use a BIT, there is no space for it? Take a look at the MAP file and see what's occupying the BIT space. Jon
It seems my answer didn't get posted...here it is again Only a single BIT of the BIT space is used by getchar. I don't understand why an overflow is being generated. I have gotten around the problem by using _geykey() but will have to write my own gets() (since it uses getcgar()) unless I can solve this. Does someone have the source for the Keil getchar()?