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.
Hello all, I'm facing a little understanding problem. At my design I use the AT89C51RD2 micro and also two external memory devices – SRAM and parallel EEPROM. At my code I have several structs that I want them to be at the external EEPROM. What I did (and I think it's not OK) is to define such a parameter in the global memory area and then copy him to the external EEPROM. I think it's not OK to do so because I waste global memory area on data that I don't want him to be there. Also, in this case I receive duplicate data. As I understand I can't do something like "volatile DATA xdata stData _at_ 0x8000;" Where DATA is a struct compose from many data types like char, int and other structs. Can anyone know a way to define a struct (bigger then one byte) directly in external memory?
Thanks a lot Jon for your help. As I know your advice is OK in case where the size of struct members is byte, but what if one of them is array or string. Lets say the first struct member of bob is "char str[7];" and I want the struct to be initialized with "XYZ123". I can't use the strcpy function because external EEPROM needs NOPs between each byte write. So I need to declare the string in RAM and then copy it with special function to external EEPROM. The problem is that now I have this string in RAM and also in EEPROM. In this way RAM area is corrupt with unuseful data. Can you help in this case? Thanks a lot, Roberto