dichiarare e definire in un array di memoria alcuni fix

T

tom12sg

Guest
Salve,

Come dichiarare un array a un certo indirizzo fisso del codice di programma in Keil che posso specificare?

Saluti,
Tom

 
Questo è dal doc Keil C51, spero che sia utile per voi

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sorriso" border="0" />Assoluta variabile di percorso
Le variabili possono essere situati in zone di memoria in assoluto nel vostro programma C
source moduli utilizzando la parola chiave _at_.L'utilizzo di questa funzione è:
nome_variabile tipo memory_space _at_ costante;
dove:
memory_space è lo spazio di memoria per la variabile.Se manca dal
dichiarazione, lo spazio di memoria di default viene usato.Fare riferimento a
Modelli di memoria a pagina 89 per ulteriori informazioni su
lo spazio di memoria di default.
tipo è il tipo di variabile.
nome_variabile è il nome della variabile.
costante è l'indirizzo al quale individuare la variabile.
Il seguente indirizzo assoluto _at_ devono essere conformi ai confini fisici di
lo spazio di memoria per la variabile.Cx51 controlli di indirizzo non valido
specifiche.
Le restrizioni si applicano le seguenti assoluta posizione variabile:
1.Variabili assoluta non può essere inizializzato.
2.Funzioni e le variabili di tipo bit non può essere situato a un indirizzo assoluto.

L'esempio seguente mostra come individuare diverse variabili diverse
tipi utilizzando la parola chiave _at_.
struct link
(
struct idata link * next;
codice char * prova;
);
idata struct elenco di link _at_ 0x40, / * lista in idata 0x40 * /
xdata testo char [256] _at_ 0xe000; / * array a xdata 0xe000 * /
xdata int i1 _at_ 0x8000, / * int a xdata 0x8000 * /
void main (void) (
= link.next (void *) 0;
i1 = 0x1234;
text [0] = 'a';
)
Spesso, si potrebbe desiderare di dichiarare le variabili in un unico modulo fonte e l'accesso
in un altro.Utilizzare le seguenti dichiarazioni esterna per accedere al _at_
le variabili definite in precedenza in un altro file di origine.
struct link
(
struct idata link * next;
codice char * prova;
);
extern struct idata elenco di link; / * lista in idata 0x40 * /
extern char testo xdata [256]; / * array a xdata 0xe000 * /
extern int xdata i1; / * int a xdata 0x8000 * /

 

Welcome to EDABoard.com

Sponsor

Back
Top