Witam,
Tworze projekt w AVR Studio + kompilator GCC Win AVR.
Ogólnie kod piszę w C. Ale chciałem porobić wstawki w assemblerze - jednak będę musiał dużo pisać w asm(ważny element programu) i zdecydowałem sie na dodanie całego pliku napisanego w asemblerze.
Podsumowując mam projekt: funkcja main w pliku "*.c" . Dodatkowy plik z rozszerzeniem *.s (Asembler)
Jak w pliku asemblera zadeklarować w projekcie stowrzonym pod GCC żeby dany fragment kodu znalazł się pod określonym adresem: np. pod adresem bootloadera 0x7000.
W pliku *.s mam:
funkcja oczywiście nia ma sensu, ale jak robie symulacje to nopy nie znajduja sie pod adresem 0x7000 pomimo że we właściwościach projektu zadeklarowałem segment flash o nazwie .bootloader pod adresem 0x7000.
.cseg
.org $xxxx - jest ignoowane w pliku *.s (w projekcie asemblerowym: asm - dziala)
Jeśli ktoś już się z tym scierał będę wdzięczny za podpowiedź
Pozdrawiam
T.
Tworze projekt w AVR Studio + kompilator GCC Win AVR.
Ogólnie kod piszę w C. Ale chciałem porobić wstawki w assemblerze - jednak będę musiał dużo pisać w asm(ważny element programu) i zdecydowałem sie na dodanie całego pliku napisanego w asemblerze.
Podsumowując mam projekt: funkcja main w pliku "*.c" . Dodatkowy plik z rozszerzeniem *.s (Asembler)
Jak w pliku asemblera zadeklarować w projekcie stowrzonym pod GCC żeby dany fragment kodu znalazł się pod określonym adresem: np. pod adresem bootloadera 0x7000.
W pliku *.s mam:
#include <avr/io.h>
.section .bootloader
funkcja:
NOP
NOP
NOP
funkcja oczywiście nia ma sensu, ale jak robie symulacje to nopy nie znajduja sie pod adresem 0x7000 pomimo że we właściwościach projektu zadeklarowałem segment flash o nazwie .bootloader pod adresem 0x7000.
.cseg
.org $xxxx - jest ignoowane w pliku *.s (w projekcie asemblerowym: asm - dziala)
Jeśli ktoś już się z tym scierał będę wdzięczny za podpowiedź
Pozdrawiam
T.
