Problemer med adressering i Z80 firmware bruker IAR

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

 

Welcome to EDABoard.com

Sponsor

Back
Top