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

memory model

I am a fresher i have completed B.E(ECE). I have recently attended GE interview, in that he asked me a question that which memory you have been using in your project......
The project i have done in my academics is Pc to Pc wireless communication in this we have used a Atmel At89c51 microcontroller and we have coded using C language using a keil cross compiler.Please can any body help me out how to answer this type of question and how many types of memory models are there, which is best suited memory model ............................ please reply soon thanks in advance.

  • The description of the memory models available in the C51 compiler can, of course, be found in the C51 manual:

    http://www.keil.com/support/man/docs/c51/c51_le_memmodels.htm

    Since the memory model itself only determines the default location of variables when no memory area is explicitly specified, there is not really a thing as a "best suited" memory model.

    However, due to the unique properties of the '51 memory architecture, a good start is using the SMALL memory model, and explicitly place variables in (slower) XDATA memory when necessary. Since XDATA is best used for arrays, this should limit the number of explicit memory type specifications (i.e. the typical program has fewer arrays than single variables).

  • "he asked me a question that which memory (sic?) you have been using in your project"

    Your question here is about memory models but, according to the above, the interviewer just asked about "memory" - is that right?
    Or is it just a typo?

    If he just said "memory", he might have been asking whether you used SRAM, DRAM, or something else; or whether it was internal to the 8051, or external, etc, etc...

    "Please can any body help me out how to answer this type of question"

    Be sure to confirm that you have understood what the questioner is actually asking!

  • You must always answer honestly!

    You say you have completed this project - therefore, if I were the interviewer, I would expect that to mean that you should know how to answer this type of question!

    However, if your involvement was only with the PC part of the project (not the 8051) then answer honestly and say that you don't know about the 8051 - don't try to bluff it!

  • First of i want thank you for giving a reply to my question......... now coming to the point he asked me about memory model used in my project work....can u help me out. It is not a typo and i am sure that we have used a flash memory.

  • There are several choices. How can anyone guess which one YOU used. Look at the project settings (IDE) or make file.

  • Anyone can put on their CV (or "resume"), "I worked on Project X" - what the interviewer wants to know is the real extent of your "work" on the project;

    eg:
    Did you just make the tea?
    Or did you just build the circuit boards from detailed instructions provided by others?
    Or did you do (some) detail designs from outlines provided by others?
    Or were you fully involved in the entire design & development, with a thorough understanding of the system.

    If you can't even think of how you would find out what memory model was used, then you clearly can't have been that closely involved - at least not with the 8051 part of the project...!

  • he asked me about memory model used in my project work....can u help me out
    How can anybody but YOU answer what YOU did.

    anyhow, since you are too lazy to spell 'you' why would anybody hire you?

    again based on the evidence of laziness, I guess you took the easy way out and used LARGE making the poor little micro work its butt off to save you a bit of effort.

    Erik

  • again based on the evidence of laziness, I guess you took the easy way out and used LARGE making the poor little micro work its butt off to save you a bit of effort.

    It has been explained to you before at length that using the large model is not an indication of laziness, it is a considered design choice taken by a competent engineer who is capable of assessing whether or not the resulting increase in code size and reduction in execution speed will have a detrimental effect on the project. If it does not have a detrimental effect on the project there is no reason whatsoever why it should not be used.

    anyhow, since you are too lazy to spell 'you' why would anybody hire you?

    That's a bit rich coming from somebody who usually can't be bothered to make any attempt to correct the extremely frequent typographical errors in his posts.

    You've been quite well behaved for a while but I notice your rude and arrogant style is beginning to creep back in. Please stop it.

  • ...it is a considered design choice taken by a competent engineer who is capable of assessing whether or not the resulting increase in code size and reduction in execution speed will have a detrimental effect on the project.

    I think you should rewrite the above as "might be a considered design choice taken by a competent engineer..."

  • "It has been explained to you before at length that using the large model is not (sic) an indication of laziness"

    Hmm - now who's being lazy?

    What has actually been explained is that "using the large model may not be an indication of laziness"

    "it is (sic) a considered design choice taken by a competent engineer..."

    Again, the full version is: "it may be a considered design choice taken by a competent engineer..."

  • Hmm - now who's being lazy?

    What has actually been explained is that "using the large model may not be an indication of laziness"

    "it is (sic) a considered design choice taken by a competent engineer..."

    Again, the full version is: "it may be a considered design choice taken by a competent engineer..."

    Yes, I replied using the same sort of sweeping generalisations as the post I was answering. Irritating, isn't it?

  • Given the context, I think Erik's sweeping generalisations are more likely to be accurate than yours in this case...

    ;-)