-
11. Data: 2014-08-05 15:48:52
Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
Od: pp <3...@3...pl>
John Smith pisze:
> 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.
Ok, dzięki, chyba trochę to pomogło.
> Jeśli nawet to jest za dużo, to nie używaj funkcji w ogóle.
> K.
>
-
12. Data: 2014-08-05 15:52:41
Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
Od: pp <3...@3...pl>
Zbych pisze:
> Jak już pytacz chce eksperymentować to może poczytać sobie o atrybucie
> OS_task, który tylko blokuje zapamiętywanie stanu rejestrów.
Chyba mam na to za stare avr-gcc - 3.4.3:
warning: `OS_task' attribute directive ignored
-
13. Data: 2014-08-05 20:21:14
Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
Od: Zbych <z...@o...pl>
On 05.08.2014 15:52, pp wrote:
> Zbych pisze:
>
>> Jak już pytacz chce eksperymentować to może poczytać sobie o atrybucie
>> OS_task, który tylko blokuje zapamiętywanie stanu rejestrów.
>
> Chyba mam na to za stare avr-gcc - 3.4.3:
O kurczę, ale z ciebie kustosz :-)
Aktualna wersja na stronie atmela to 4.7.
-
14. Data: 2014-08-05 23:47:31
Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
Od: pp <3...@3...pl>
Zbych pisze:
>> Chyba mam na to za stare avr-gcc - 3.4.3:
>
> O kurczę, ale z ciebie kustosz :-)
> Aktualna wersja na stronie atmela to 4.7.
Chyba więcej kłopotu niż pożytku przy przechodzeniu na nowsze wersje.
Jak coś dobrze działa - wolę tego nie ruszać.
Oprogramowanie linuksowe to jeden wielki burdel.
W ogóle, odnoszę wrażenie, że programiści linuksowi to ludzie
inteligentni inaczej.
-
15. Data: 2014-08-06 11:42:36
Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
Od: g...@s...invalid (Gof)
pp <3...@3...pl> wrote:
>> 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.
Czy ja wiem... mi się wydaje, że assembler AVR jest bardziej logiczny, niż
assembler 51.
--
SELECT finger FROM hand WHERE id = 3;
http://www.chmurka.net/
-
16. Data: 2014-08-06 11:43:27
Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
Od: g...@s...invalid (Gof)
pp <3...@3...pl> wrote:
> 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 ?
Zmiennych czy rejestrów?
--
SELECT finger FROM hand WHERE id = 3;
http://www.chmurka.net/
-
17. Data: 2014-08-06 15:26:44
Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
Od: pp <3...@3...pl>
Gof pisze:
> pp <3...@3...pl> wrote:
>
>> 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 ?
>
> Zmiennych czy rejestrów?
Chodzi mi tylko o jak najszybszą realizację funkcji (zegar 128 kHz).
-
18. Data: 2014-08-07 11:36:24
Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
Od: g...@s...invalid (Gof)
pp <3...@3...pl> wrote:
>>> 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 ?
>>
>> Zmiennych czy rejestrów?
>
> Chodzi mi tylko o jak najszybszą realizację funkcji (zegar 128 kHz).
Zrób ją inline (nie ma gwarancji że kompilator wtedy i tak zrobi z
niej inline) albo makrodefinicję (wtedy masz gwarancję). Ile masz
pamięci programu?
--
SELECT finger FROM hand WHERE id = 3;
http://www.chmurka.net/
-
19. Data: 2014-08-07 15:25:42
Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
Od: pp <3...@3...pl>
Gof pisze:
> pp <3...@3...pl> wrote:
>
>>>> 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 ?
>>> Zmiennych czy rejestrów?
>> Chodzi mi tylko o jak najszybszą realizację funkcji (zegar 128 kHz).
>
> Zrób ją inline (nie ma gwarancji że kompilator wtedy i tak zrobi z
> niej inline) albo makrodefinicję (wtedy masz gwarancję).
Ok, ale wtedy program zajmuje więcej miejsca.
> Ile masz pamięci programu?
2kB
-
20. Data: 2014-08-07 15:35:53
Temat: Re: C, AVR - funkcja - wyłączenie zapisywania/przywracania zmiennych przy we/we
Od: janusz_k <J...@o...pl>
W dniu 07.08.2014 o 15:25 pp <3...@3...pl> pisze:
> Gof pisze:
>> pp <3...@3...pl> wrote:
>>
>>>>> 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 ?
>>>> Zmiennych czy rejestrów?
>>> Chodzi mi tylko o jak najszybszą realizację funkcji (zegar 128 kHz).
>> Zrób ją inline (nie ma gwarancji że kompilator wtedy i tak zrobi z
>> niej inline) albo makrodefinicję (wtedy masz gwarancję).
>
> Ok, ale wtedy program zajmuje więcej miejsca.
No to rybki albo akwarium, decyduj się.
>
>> Ile masz pamięci programu?
>
> 2kB
Pisz w asemblerze najważniejsze funkcje to parę bajtów odzyskasz, wbrew
pozorom asembler
do AVR-a wcale nie jest gorszy od 51, a powiedziałbym że prostszy bno jest
więcej rejestrów
uniwersalnych i w miarę dobrze opisany.
--
Pozdr
Janusz