W
wh_hsn
Guest
Hei Alle,
Noen her kjent med IAR C kompilator for Z80?
Jeg har nettopp arvet et prosjekt som ble skrevet for en Z80 plattform med IAR 2.01G kompilatoren.
Det er ved hjelp banked minne å krysse 64k grensa.
Jeg har et problem adressering variabler i minnet banker.
Betrakt følgende eksemplet:
///////////// Fil: moduleA.c ////////////////////////////////
/ / Module A:
# pragma minne = dataseg (MOD_A_DATA)
MOD_A_STRUC mod_a_struc;
# pragma minne = constseg (MOD_A_CONST)
const char teststr [] = "test string";
# pragma minne = standard
# pragma codeseg (MOD_A_CODE)
Void MOD_A_SET (MOD_A_STRUC * m, int x, int y)
(
m-> member1 = x;
m-> member2 = y;
)
int MOD_A_GET1 (MOD_A_STRUC * m, int x, int y)
(
return m-> member1;
)
int MOD_A_GET2 (MOD_A_STRUC * m, int x, int y)
(
return m-> member2;
)
/////////////// End modul A ////////////////////////////////
Nå hovedmodul:///////////// Fila: main.c ////////////////////////////////
/ / Module viktigste:
# pragma minne = dataseg (MOD_A_DATA)
Extern MOD_A_STRUC mod_a_struc;
# pragma minne = constseg (MOD_A_CONST)
extern const char teststr [];
# pragma minne = standard
void main (void)
(
int i, j;
MOD_A_SET (mod_a_struc, 0x12, 0x34);
i = MOD_A_GET1 (mod_a_struc);
j = MOD_A_GET2 (mod_a_struc);
printf ( "% s:% i% i \ n \ r", teststr, i, j);
)
///////////// End modul main ////////////////////////////////Samtalene til settet og får funksjon ikke synes å ta til høyre mod_a_struc i minnet.
Hva gjør jeg galt?!
Takk og vennlig hilsen,
Waleed Hasan
Noen her kjent med IAR C kompilator for Z80?
Jeg har nettopp arvet et prosjekt som ble skrevet for en Z80 plattform med IAR 2.01G kompilatoren.
Det er ved hjelp banked minne å krysse 64k grensa.
Jeg har et problem adressering variabler i minnet banker.
Betrakt følgende eksemplet:
///////////// Fil: moduleA.c ////////////////////////////////
/ / Module A:
# pragma minne = dataseg (MOD_A_DATA)
MOD_A_STRUC mod_a_struc;
# pragma minne = constseg (MOD_A_CONST)
const char teststr [] = "test string";
# pragma minne = standard
# pragma codeseg (MOD_A_CODE)
Void MOD_A_SET (MOD_A_STRUC * m, int x, int y)
(
m-> member1 = x;
m-> member2 = y;
)
int MOD_A_GET1 (MOD_A_STRUC * m, int x, int y)
(
return m-> member1;
)
int MOD_A_GET2 (MOD_A_STRUC * m, int x, int y)
(
return m-> member2;
)
/////////////// End modul A ////////////////////////////////
Nå hovedmodul:///////////// Fila: main.c ////////////////////////////////
/ / Module viktigste:
# pragma minne = dataseg (MOD_A_DATA)
Extern MOD_A_STRUC mod_a_struc;
# pragma minne = constseg (MOD_A_CONST)
extern const char teststr [];
# pragma minne = standard
void main (void)
(
int i, j;
MOD_A_SET (mod_a_struc, 0x12, 0x34);
i = MOD_A_GET1 (mod_a_struc);
j = MOD_A_GET2 (mod_a_struc);
printf ( "% s:% i% i \ n \ r", teststr, i, j);
)
///////////// End modul main ////////////////////////////////Samtalene til settet og får funksjon ikke synes å ta til høyre mod_a_struc i minnet.
Hva gjør jeg galt?!
Takk og vennlig hilsen,
Waleed Hasan