Déclarer et définir ensemble une mémoire à fixer certaines

T

tom12sg

Guest
Salut,

Comment déclarer un tableau à une adresse fixe certaines dispositions du Code du programme dans Keil que je peux préciser?

Cordialement,
Tom

 
Il s'agit de la C51 doc Keil, j'espère qu'elle vous sera utile

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sourire" border="0" />Situation variable absolue
Les variables peuvent être situés à des emplacements mémoire absolue dans votre programme C
source modules en utilisant le mot-clé _at_.L'utilisation de cette fonctionnalité est la suivante:
variable_name type memory_space _at_ constant;
où:
memory_space est l'espace mémoire pour la variable.Si elle est absente de la
déclaration, l'espace mémoire par défaut est utilisé.Reportez-vous à
Les modèles de la mémoire sur la page 89 pour plus d'informations sur
l'espace mémoire par défaut.
type est le type de variable.
variable_name est le nom de la variable.
constante est l'adresse à laquelle pour localiser la variable.
L'adresse absolue suivantes _at_ doivent être conformes aux limites physiques de
l'espace mémoire pour la variable.Cx51 vérifie l'adresse invalide
cahier des charges.
Les restrictions suivantes s'appliquent à l'emplacement variable absolue:
1.variables Absolu ne peut pas être initialisé.
2.Fonctions et les variables de type bit ne peut pas être situé à une adresse absolue.

L'exemple suivant montre comment localiser plusieurs variables différentes
types en utilisant le mot-clé _at_.
lien struct
(
struct idata lien * suivant;
* Code d'essai char;
);
idata struct liste de liens _at_ 0x40; liste * / * 0x40 à idata /
xdata texte char [256] _at_ 0xe000; tableau * / à xdata 0xe000 * /
int i1 xdata _at_ 0x8000; int * / à xdata 0x8000 * /
void main (void) (
link.next = (void *) 0;
i1 = 0x1234;
texte [0] = 'a';
)
Souvent, vous pouvez déclarer vos variables dans les modules d'un seul et l'accès
eux dans une autre.Utilisez le extérieures déclarations ci-dessous pour accéder à la _at_
variables définies ci-dessus dans un autre fichier source.
lien struct
(
struct idata lien * suivant;
* Code d'essai char;
);
extern struct idata liste de liens, liste * / * 0x40 à idata /
extern texte char [xdata 256]; tableau * / à xdata 0xe000 * /
int xdata extern i1; int * / à xdata 0x8000 * /

 

Welcome to EDABoard.com

Sponsor

Back
Top