-
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
- Prośba o identyfikację komponentu
- Smart gniazdko straciło na zasięgu wifi?
- Smart gniazdko straciło zasięg wifi?
- nurtuje mnie
- dziwna sprawa...
- Laptop MSI się nie uruchamia.
- Dobra listwa LED (CRI 90-95, bez migotania)
- masowe programowanie AVR
- Fajny pomysł na monitor z klawiaturą
- Sprzedawanie zaszyfrowanych filmów na płytach Blu-Ray bez kluczy deszyfrujących
- Aparat, zewnętrzny mikrofon, brum
- Wieszanie się przy aktywnym SMP
- Prognozowanie zużycia energii przez PGE?
- Odkurzacz mnie bije :(
- Rapsberry Pi i synchronizacja plików
Najnowsze wątki
- 2024-10-19 PUE ZUS -- administracyjna nuda...
- 2024-10-18 Marsz niepodleglosci
- 2024-10-18 Pożar parkingu w Luton
- 2024-10-18 Łódź => Spedytor Międzynarodowy <=
- 2024-10-18 Gdańsk => Technical Lead ( (Java Background)) <=
- 2024-10-18 Warszawa => Head of International Freight Forwarding Department <=
- 2024-10-18 uwazajmy na haczyki w umowach
- 2024-10-18 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2024-10-18 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-10-18 Gdańsk => Software .Net Developer <=
- 2024-10-18 Warszawa => Junior Rekruter <=
- 2024-10-18 Warszawa => Key Account Manager <=
- 2024-10-18 Przeróbka na zgrzewarkę "równoległą"
- 2024-10-18 Ostrów Wielkopolski => Laravel PHP Developer <=
- 2024-10-18 Warszawa => Data Scientist / Data Engineer (modele predykcyjne) <=