eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaavr-gcc - dane w flashRe: avr-gcc - dane w flash
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.task.gda.pl
    !news.mm.pl!not-for-mail
    From: Zbych <a...@o...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: avr-gcc - dane w flash
    Date: Sun, 09 Aug 2009 16:07:24 +0200
    Organization: Multimedia Polska S.A.
    Lines: 54
    Message-ID: <h5ml8c$d85$1@news.mm.pl>
    References: <h5hsal$adp$1@achot.icm.edu.pl> <h5htel$2ul$1@news.wp.pl>
    <h5kdis$89m$1@atlantis.news.neostrada.pl> <h5l2qq$rl9$1@news.wp.pl>
    <h5m97a$ae0$1@atlantis.news.neostrada.pl> <h5mhnm$1m2v$1@news.mm.pl>
    <h5mio8$rb$1@atlantis.news.neostrada.pl>
    NNTP-Posting-Host: host-62-141-227-0.tomaszow.mm.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.mm.pl 1249826892 13573 62.141.227.0 (9 Aug 2009 14:08:12 GMT)
    X-Complaints-To: a...@m...pl
    NNTP-Posting-Date: Sun, 9 Aug 2009 14:08:12 +0000 (UTC)
    User-Agent: Thunderbird 2.0.0.22 (Windows/20090605)
    In-Reply-To: <h5mio8$rb$1@atlantis.news.neostrada.pl>
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:568779
    [ ukryj 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...

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: