Envoyé par
calagan
désolé de demander sa pourrais-tu m'expliquer ke se passe t-il losque je fait:
1 2
| adress_sdram[cpt]=data;
cpt++; |
merci là je ne vois plus bien.
cela ne reviens pas au meme que :
1 2
| *adress_sdram=data;
adress_sdram++; |
merci;
Non, cela revient à faire:
1 2
| *(address_sdram + cpt) = data;
cpt++; |
Le pointeur n'est donc pas incrémenté. Maintenant, si SDRAM_0_SPAN est une adresse, la condition suivante ne veux rien dire:
while (cpt < SDRAM_0_SPAN);
Tu devrais avoir:
1 2 3 4 5
| while (address_sdram[cpt] < SDRAM_0_SPAN);
/* ou encore */
while ((address + cpt) < SDRAM_0_SPAN); |
Si tu veux avoir accès à tous les bytes de ta mémoire, pourquoi tu n'utilises pas:
1 2 3 4 5 6 7 8 9 10
| unsigned char *p_address_adram = NULL;
/* ... */
for (p_address_sdram = SDRAM_0_BASE;
p_address_sdram < SDRAM_0_SPAN;
p_address_sdram++)
{
/* Traitement à faire sur chaque byte */
} |
Thierry
Partager