Försöker få ihop ett program bestående av en .c fil och en .S (assembler fil) med avr-gcc (mega8515 device)
Min .S fil ser ut så här
Kod: Markera allt
.global charA
.section .data
charA:
.byte 0b00100
.byte 0b01010
.byte 0b10001
.byte 0b10001
.byte 0b01110
.byte 0b10001
.byte 0b10001
Kod: Markera allt
extern char charA;
int main()
{
//massa blaj
c = eeprom_read_byte(charA);
}
Men det här funkar inte. Det är charA som inte får rätt värde. Det funkar om jag inspekterar eepromminnet och får fram addressen "manuellt" sas. och hårdkodar in den i c koden, men inte annars.
Så...frågan är alltså. Vad ska man göra för att det ska fungera som jag vill? Antar att det har något med länkningen att göra, men jag vet inte vad...
(skickar med makefilen också

Kod: Markera allt
avr-gcc -O -mmcu=atmega8515 -c blah.c -o blah.o
avr-gcc -O -mmcu=atmega8515 -c characters.S -o characters.o
avr-gcc -mmcu=atmega8515 -o blah.hex blah.o characters.o
avr-objcopy -j .text -O ihex blah.hex out.hex
avr-objcopy -j .data -O ihex blah.hex characters.hex
Peace