Come trasferire mamoey utilizzando avr-gcc?

M

muoinhohn

Guest
Ciao a tutti
I'm in beginer avr-gcc.
Per tutto l'arco della avr-gcc, mi tenta di utilizzare script linker a delocalizzare memoria are.Il mio programma è semplice:
------------------------------------------
# include <avr/io.h>
char x __attribute__ ((sezione ( ". "))); temp
int main ()
(
char i;
i = 0;
while (1)
(X = i ;)
)
--------------------------------------------
Il file di script è il seguente:
------------------
MEMORIA
(
ROM (rx): ORIGINE = 0, lunghezza = 32K
RAM (w): org = 0x800070, len = 0x300
TEMP (w): org = 0x800060, len = 0x010
)
SEZIONI
(
. testo:
(*. (Testo))> ROM
. dati:
(*. (Dati)
*. (BSS)
)> RAM
. temp: ()> TEMP
)
-----------------------------
Il mio makefile:
--------------------------------
tutti:
avr-gcc ex1.c-mmcu = atmega32-Wall-E-gdwarf-2-O ex1.i
avr-gcc ex1.i-mmcu = atmega32-Wall-S-gdwarf-2-O0-o ex1.s
avr-gcc ex1.s-mmcu = atmega32-Wall-c-gdwarf-2-O0-o ex1.o
avr-ld ex1.o-T-lnk.cmd Mappa ex1.map-o ex1.out
---------------------------------------------
Quando uso Avr Studio per il debug, la variabile "temp" è situato al 0x0060, ma variabile "i" è situato alla 0xFFFE.Nella mia mente variabile "i" si trova da qualche parte nella zona di RAM (da 0x0070 a 0x0300).
Chi mi può aiutare a spiegare questo problema?
Grazie in anticipo
Muoinhohn

 

Welcome to EDABoard.com

Sponsor

Back
Top