I have a Real-time c51 program, I need a large buffer(120 bytes).Now I use the data segment space, but when I link it an error will appear: "Address space overflow, Length: 001DH". I do not want to use xdata space like: xdata BYTE buf[120], because this type data will affect the executive speed, can I set a large data space? Now I use the uVision/51 for windows Version 1.32. Thanks very much! Tom wu
Tom, If you are using a 8051 there's no more internal mem space available ( you cant change it ), but in the old simulator version you can place your buffer in the Idata segment because there's no distinction between a 51 and a 52. Take a look in the available segments at the Keil Software - C51 Compiler User's Guide 01.97- Explicit Declared Memory Types p. 63. - Alex
Data space is internal RAM within the chip; you can't change its size. How much DATA space does your particular chip have? Try moving everything else out from DATA. Could you use PDATA instead of XDATA?
If you are using an 8051-based part, which has 128 bytes of internal RAM, you could consider an 8052-based part, which has 256 bytes of internal RAM. --Dan Henry