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.
Somewhere I read an answer from Keil on a question about memory models. Keil's answer was that the board setup/design is depending on the used memory model ? Can somebody explain to me what this means ? What do you have to take into consideration when designing a board ? I also read that all modules must have the same memory model, but what about the ROM model ?
The Memory Model defines the default memory space used for variables: In the small model, all variables will be placed in DATA unless you explicitly state otherwise; In the compact model, all variables will be placed in PDATA unless you explicitly state otherwise; In the large model, all variables will be placed in XDATA unless you explicitly state otherwise. Read the C51 manual for further details. Obviously, to use PDATA or XDATA your hardware will need to be suitably designed to access and populate these memory spaces. The Small/Compact/Large Code-size (ROM) option specifies the way the compiler uses the ACALL, LCALL, AJMP and LJMP instructions - again, see the C51 manual for further details.