M
muoinhohn
Guest
Hola a todos
Estoy beginer en avr-gcc.
Para que el aprendizaje avr-gcc, trato de utilizar secuencias de comandos de vinculador de reubicar áreas de memoria.Mi programa es simple:
------------------------------------------
# include <avr/io.h>
x char __attribute__ ((sección ( ". temp ")));
int main ()
(
char i;
i = 0;
while (1)
(X = i
)
--------------------------------------------
El archivo de comandos es la siguiente:
------------------
MEMORIA
(
ROM (RX): ORIGEN = 0, longitud = 32K
RAM (w): org = 0x800070, len = 0x300
TEMP (w): org = 0x800060, len = 0x010
)
SECCIONES
(
. texto:
(*. (Texto))> ROM
. datos:
(*. (Datos)
*. (BSS)
)> RAM
. Temp: ()> TEMP
)
-----------------------------
Mi makefile:
--------------------------------
todos:
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
ex1.o avr-ld-lnk.cmd T-ex1.map Mapa-o ex1.out
---------------------------------------------
Cuando uso Avr Studio para depurar, la variable "temp" se encuentra en 0x0060, pero la variable "i" se encuentra en 0xFFFE.En mi mente variable "i" se encuentra en algún lugar en el área de memoria RAM (del 0x0070 al 0x0300).
Alguien me puede ayudar a explicar este problema?
Gracias de antemano
Muoinhohn
Estoy beginer en avr-gcc.
Para que el aprendizaje avr-gcc, trato de utilizar secuencias de comandos de vinculador de reubicar áreas de memoria.Mi programa es simple:
------------------------------------------
# include <avr/io.h>
x char __attribute__ ((sección ( ". temp ")));
int main ()
(
char i;
i = 0;
while (1)
(X = i
)
--------------------------------------------
El archivo de comandos es la siguiente:
------------------
MEMORIA
(
ROM (RX): ORIGEN = 0, longitud = 32K
RAM (w): org = 0x800070, len = 0x300
TEMP (w): org = 0x800060, len = 0x010
)
SECCIONES
(
. texto:
(*. (Texto))> ROM
. datos:
(*. (Datos)
*. (BSS)
)> RAM
. Temp: ()> TEMP
)
-----------------------------
Mi makefile:
--------------------------------
todos:
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
ex1.o avr-ld-lnk.cmd T-ex1.map Mapa-o ex1.out
---------------------------------------------
Cuando uso Avr Studio para depurar, la variable "temp" se encuentra en 0x0060, pero la variable "i" se encuentra en 0xFFFE.En mi mente variable "i" se encuentra en algún lugar en el área de memoria RAM (del 0x0070 al 0x0300).
Alguien me puede ayudar a explicar este problema?
Gracias de antemano
Muoinhohn