declara şi defini array la o anumită fixa de memorie

T

tom12sg

Guest
Salut,

Cum de a declara o gamă de la o anumită adresă fixă a programului Keil codul în care i se poate specifica?

Cu respect,
Tom

 
Aceasta este de la C51 Keil doc, speranţa este util pentru
dvs.
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Zâmbi" border="0" />Absolute Variabila Locatia
Variabilele se pot afla la absolut memorie locaţii în program C
sursa module folosind _at_ de cuvinte cheie.De utilizare pentru această caracteristică este:
memory_space tip variable_name _at_ constant;
în cazul în care:
memory_space este spaţiu de memorie pentru variabila.În cazul în care lipsesc de la
declaraţiei, implicit spaţiu de memorie este utilizată.Se referă la
Modele de memorie de la pagina 89 pentru mai multe informaţii despre
implicit de spaţiu de memorie.
tip este variabila de tip.
variable_name este variabilă nume.
constantă este adresa la care pentru a localiza variabilă.
Absolută _at_ adresa următoare trebuie să fie conforme cu fizice graniţele
spaţiu de memorie pentru variabila.Cx51 controale pentru adresă invalidă
caietului de sarcini.
Următoarele restricţii se aplică la absolut variabilă locatie:
1.Absolute variabile nu poate fi iniţializat.
2.Funcţiile şi variabile de biţi de tip nu poate fi amplasat la o adresă absolută.

Următorul exemplu demonstrează cum pentru a localiza mai multe variabile
tipuri _at_ folosind cuvinte cheie.
struct link
(
struct link-ul idata * next;
caracter codul * test;
);
idata struct lista link-ul _at_ 0x40; / * lista de la idata 0x40 * /
xdata caracter text [256] _at_ 0xE000; / * array la xdata 0xE000 * /
xdata int i1 _at_ 0x8000; / * int la xdata 0x8000 * /
void main (void) (
link.next = (void *) 0;
i1 = 0x1234;
text [0] = 'a';
)
Deseori,
este posibil să doriţi să vă declar variabile într-o singură sursă şi modul de acces
le în alta.Utilizaţi următoarele declaraţii de externe pentru a accesa _at_
variabilele definite mai sus, într-o altă sursă de fişiere.
struct link
(
struct link-ul idata * next;
caracter codul * test;
);
Extern idata struct lista link-ul; / * lista de la idata 0x40 * /
Extern xdata caracter text [256]; / * array la xdata 0xE000 * /
Extern xdata int i1; / * int la xdata 0x8000 * /

 

Welcome to EDABoard.com

Sponsor

Back
Top