eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
Ilość wypowiedzi w tym wątku: 21

  • 1. Data: 2014-08-05 03:04:33
    Temat: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
    Od: pp <3...@3...pl>

    Witam

    Jak w C (avr-gcc, AVR) wyłączyć zapisywanie zmiennych do stosu (czy
    gdzie to tam jest zapisywane) przy wchodzeniu do funkcji i przywracanie
    tych zmiennych przy powrocie z funkcji ?
    Program nie używa przerwań, więc chyba nie jest to konieczne.

    Paweł


  • 2. Data: 2014-08-05 08:40:29
    Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
    Od: <k...@w...pl>


    Użytkownik "pp" <3...@3...pl> napisał w wiadomości
    news:lrpaj3$ti1$1@speranza.aioe.org...
    > Witam
    >
    > Jak w C (avr-gcc, AVR) wyłączyć zapisywanie zmiennych do stosu (czy gdzie to
    > tam jest zapisywane) przy wchodzeniu do funkcji i przywracanie tych zmiennych
    > przy powrocie z funkcji ?
    > Program nie używa przerwań, więc chyba nie jest to konieczne.
    >
    Uzyć asemblera zamiast C lub nie stosować funkcji.


  • 3. Data: 2014-08-05 08:48:05
    Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
    Od: Zbych <z...@o...pl>

    W dniu 2014-08-05 03:04, pp pisze:
    > Witam
    >
    > Jak w C (avr-gcc, AVR) wyłączyć zapisywanie zmiennych do stosu (czy
    > gdzie to tam jest zapisywane) przy wchodzeniu do funkcji i przywracanie
    > tych zmiennych przy powrocie z funkcji ?

    Nie da się. Takie jest ABI.

    http://gcc.gnu.org/wiki/avr-gcc

    > Program nie używa przerwań, więc chyba nie jest to konieczne.

    To nie ma nic do rzeczy.


  • 4. Data: 2014-08-05 08:52:57
    Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
    Od: JDX <j...@o...pl>

    On 2014-08-05 08:48, Zbych wrote:
    > W dniu 2014-08-05 03:04, pp pisze:
    >> Witam
    >>
    >> Jak w C (avr-gcc, AVR) wyłączyć zapisywanie zmiennych do stosu (czy
    >> gdzie to tam jest zapisywane) przy wchodzeniu do funkcji i przywracanie
    >> tych zmiennych przy powrocie z funkcji ?
    >
    > Nie da się. Takie jest ABI.
    >
    > http://gcc.gnu.org/wiki/avr-gcc
    Nie jest dla mnie do końca jasne o co chodzi OP, ale może pomoże atrybut
    "naked".


  • 5. Data: 2014-08-05 09:32:05
    Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
    Od: Zbych <z...@o...pl>

    W dniu 2014-08-05 08:52, JDX pisze:
    > On 2014-08-05 08:48, Zbych wrote:
    >> W dniu 2014-08-05 03:04, pp pisze:
    >>> Witam
    >>>
    >>> Jak w C (avr-gcc, AVR) wyłączyć zapisywanie zmiennych do stosu (czy
    >>> gdzie to tam jest zapisywane) przy wchodzeniu do funkcji i przywracanie
    >>> tych zmiennych przy powrocie z funkcji ?
    >>
    >> Nie da się. Takie jest ABI.
    >>
    >> http://gcc.gnu.org/wiki/avr-gcc
    > Nie jest dla mnie do końca jasne o co chodzi OP, ale może pomoże atrybut
    > "naked".

    Przy "naked" trzeba ręcznie tworzyć ramkę na stosie (jeśli jest
    potrzebna), zadbać o odtworzenie oryginalnego stanu rejestrów R18-R27,
    R30, R31 jeśli zostały zmienione i na koniec ręcznie wstawić rozkaz
    powrotu z funkcji. Raczej nie jest to wygodny przepis na usunięcie
    "niepotrzebnych" push/pop.

    Jak już pytacz chce eksperymentować to może poczytać sobie o atrybucie
    OS_task, który tylko blokuje zapamiętywanie stanu rejestrów.



  • 6. Data: 2014-08-05 10:50:04
    Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
    Od: janusz_k <J...@o...pl>

    W dniu 05.08.2014 o 03:04 pp <3...@3...pl> pisze:

    > Witam
    >
    > Jak w C (avr-gcc, AVR) wyłączyć zapisywanie zmiennych do stosu (czy
    > gdzie to tam jest zapisywane) przy wchodzeniu do funkcji i przywracanie
    > tych zmiennych przy powrocie z funkcji ?
    Po 1 nie zapisuje zmiennych na stosie, tylko przekazuje je w rejestrach
    od R25 do R8, dopiero jak jest ich wicej to na stosie.
    To co odkłada na stosie to prolog i epilog funkcji, można to wyłączyć
    przez atrybut naked np:
    ISR(TIMER0_OVF_vect, ISR_NAKED)
    ale wtedy o rejestr stanu i inne rejestry musisz zadbać sam, jAKIE TO JUŻ
    Zbych napisał.

    --

    Pozdr
    Janusz


  • 7. Data: 2014-08-05 10:53:14
    Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
    Od: John Smith <d...@b...pl>

    On 05-08-2014 08:40, k...@w...pl wrote:
    >
    > Użytkownik "pp" <3...@3...pl> napisał w wiadomości
    > news:lrpaj3$ti1$1@speranza.aioe.org...
    >> Witam
    >>
    >> Jak w C (avr-gcc, AVR) wyłączyć zapisywanie zmiennych do stosu (czy
    >> gdzie to tam jest zapisywane) przy wchodzeniu do funkcji i
    >> przywracanie tych zmiennych przy powrocie z funkcji ?
    >> Program nie używa przerwań, więc chyba nie jest to konieczne.
    >>
    > Uzyć asemblera zamiast C lub nie stosować funkcji.

    Użyć zmiennych globalnych (poza funkcjami, także poza main) oraz
    wszystkie funkcje muszą być postaci:
    void funkcja(void)
    i wtedy jedyne co ląduje na stosie to adres powrotu funkcji.
    Jeśli nawet to jest za dużo, to nie używaj funkcji w ogóle.
    K.


  • 8. Data: 2014-08-05 11:06:20
    Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
    Od: A.L. <a...@a...com>

    On Tue, 05 Aug 2014 03:04:33 +0200, pp <3...@3...pl> wrote:

    >Witam
    >
    >Jak w C (avr-gcc, AVR) wyłączyć zapisywanie zmiennych do stosu (czy
    >gdzie to tam jest zapisywane) przy wchodzeniu do funkcji i przywracanie
    >tych zmiennych przy powrocie z funkcji ?
    >Program nie używa przerwań, więc chyba nie jest to konieczne.
    >
    >Paweł

    A gdzie maja byc zapisywane?..

    A.L.


  • 9. Data: 2014-08-05 15:25:15
    Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
    Od: pp <3...@3...pl>

    Ok, dziękuje wszystkim za odpowiedzi.


  • 10. Data: 2014-08-05 15:26:24
    Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
    Od: pp <3...@3...pl>

    k...@w...pl pisze:

    > Uzyć asemblera zamiast C lub nie stosować funkcji.

    Asembler jest nie na moją głowę. Używałem trochę asemblera przy 8051 ale
    z tym jest chyba jeszcze 2x więcej roboty.

strony : [ 1 ] . 2 . 3


Szukaj w grupach

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: