-
Data: 2009-08-09 14:07:24
Temat: Re: avr-gcc - dane w flash
Od: Zbych <a...@o...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]identyfikator: 20040501 pisze:
> dzięki! mógłbyś napisać jakiś edukacyjny programik typu zapisz do
> zmiennej w procedurze asemblerowej, wywoływanej z C? P.S. przypomniało
> mi się, te pliki *.s obowiązują w AVRstudio...
plik main.c:
#include <avr/io.h>
uint8_t zmienna;
uint8_t procedura_w_asemblerze(uint8_t arg);
void main( void ){
PORTC = procedura_w_asemblerze(PORTB);
PORTB = zmienna;
}
--------------------------------------------------
plik utils.S:
.global procedura_w_asemblerze
.global zmienna
.section .text
procedura_w_asemblerze:
; modyfikacja zmiennej globalnej
lds r25, zmienna
inc r25
sts zmienna, r25
;obróbka parametrów i zwrócenie wyniku
inc r24
ret
Zanim zaczniesz pisać procedury w asemblerze koniecznie musisz doczytać,
w jakich rejestrach przekazuje się parametry, zawartość jakich rejestrów
możesz zniszczyć, a które koniecznie musisz zwrócić nienaruszone:
http://www.nongnu.org/avr-libc/user-manual/FAQ.html#
faq_reg_usage
Do kompilacji używam standardowego makefile'a, więc pliki asemblerowe
wystarczy dopisać w linii "ASRC =" (pamiętając o dużym S w rozszerzeniu).
--
przeciez moje rozumowanie bylo bez skazy,
no sam bym wskoczyl do tego wulkanu,
ale kto by tak pieknie gwizdal...
Następne wpisy z tego wątku
- 09.08.09 14:19 identyfikator: 20040501
- 09.08.09 14:23 Zbych
- 09.08.09 16:00 identyfikator: 20040501
- 09.08.09 16:16 identyfikator: 20040501
- 09.08.09 17:15 identyfikator: 20040501
- 09.08.09 22:46 Adam Dybkowski
- 11.08.09 15:39 identyfikator: 20040501
- 11.08.09 16:44 Zbych
- 21.08.09 18:05 identyfikator: 20040501
- 21.08.09 18:04 identyfikator: 20040501
- 23.08.09 23:56 Adam Dybkowski
- 26.08.09 15:57 identyfikator: 20040501
- 27.08.09 00:39 Adam Dybkowski
Najnowsze wątki z tej grupy
- Długi kabel zasilający a na końcu procek
- Dlaczego nam nie idzie
- Co czujnik to inna temperatura
- Jak naprawić pilota
- Dlaczego TMP wer. 2.0 nie może być sprzedawany jako patyk USB lub karta PCIe 1x?!?
- produkcja w UE
- Pamięć SRAM nie działa z Z80182
- plyta indukcyjna - naprawa
- założyłem kamerę
- syrenki alarmów
- Czym obecnie programuje się EPROM-y?
- zagadka sieciowa
- W Polsce powstaje grawitacyjny magazyn energii
- Linux wciąż wspiera dyskietki. Porządki w sterownikach do FDD
- Koniec z instalacją niezatwierdzonych aplikacji na Androidzie
Najnowsze wątki
- 2025-09-09 Lublin => Delphi Programmer <=
- 2025-09-09 Lublin => Programista Delphi <=
- 2025-09-09 Warszawa => Specialist in Administration <=
- 2025-09-09 Warszawa => Programista Microsoft Dynamics 365 Finance & Operations (D
- 2025-09-09 Warszawa => Specjalista/tka ds. Administracji <=
- 2025-09-08 Długi kabel zasilający a na końcu procek
- 2025-09-08 Dużo niższe temperatury procesora po obudzeniu komputera... tak ma być czy jest coś nie tak?
- 2025-09-08 Warszawa => Senior Fullstack Developer <=
- 2025-09-08 Warszawa => Head of Technology <=
- 2025-09-08 Pozbawianie obywatelstwa: Rosja olewa konstytucyjny zakaz "jak RP3"?
- 2025-09-08 Wrocław => Android Developer (Java) <=
- 2025-09-08 Warszawa => Programista C <=
- 2025-09-08 Warszawa => Software .Net Developer <=
- 2025-09-08 Polacy zbiednieli
- 2025-09-08 UK: Transparent "Sprzeciwiam się ludobójstwu. Popieram Palestine Action" => 890 "terrorystów" zatrzymanych