Arduino a alokace mista pro promenne

Jan Waclawek konfera na efton.sk
Čtvrtek Říjen 24 14:42:24 CEST 2019


To je skor prejav toho, ze C (a tym aj C++) nie je pripraveny na koncept
roznych pamatovych priestorov. Existuje uz asi 15 rokov navrh rozsireni,
tzv. named address spaces, ale nejako sa neujal. Pre AVR je zhodou
okolnosti tiez uz asi 10 rokov implementovany
https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html , ale aj
"vdaka" arduinu sa zakonzervovalo prave skor pouzitie toho nestandardneho
atributu __progmem.

Ono to ma este vselijake relativne zlozite suvislosti najma pre vacsie
AVRka (nad 64kB FLASH) a aj s kompromisom medzi efektivnym (co sa tyka
velkosti binaru aj rychlosti vykonavania a ciastocne aj spotreby RAM) a
"unifikovanym" (t.j. kde netreba rozmyslat) kodom.

K tomu textu z manualu avr-libc este doporucujem ako doplnkove citanie
tento tutorial (v podstate len prvy post z celeho vlakna)
https://www.avrfreaks.net/forum/tut-c-gcc-and-progmem-attribute?name=PNphpBB2&file=viewtopic&t=38003


wek

----- Original Message ---------------

Subject: Re: Arduino a alokace mista pro promenne
   From: Pavel Brychta <pavel.brychta at duhasys.eu>
   Date: Thu, 24 Oct 2019 14:04:26 +0200
     To: hw-list at list.hw.cz

>DD,
>
>ne, to je vlastnost architektury CPU - viz. třeba 
>https://www.nongnu.org/avr-libc/user-manual/pgmspace.html
>
>Pavel Brychta
>
>Dne 24.10.2019 v 14:00 Jirka Mww napsal(a):
>> Ahoj Martine,
>> díky za vysvětlení.  To je vlastnost Arduina nebo jazyka C++ nebo co 
>> to je za jazyk  ?
>>
>> Zdravi
>> Jirka Sloupenský  OK1MWW
>>
>>
>> čt 24. 10. 2019 v 13:45 odesílatel Martin Locker <locker at vosrk.cz 
>> <mailto:locker at vosrk.cz>> napsal:
>>
>>     Ahoj Jirko,
>>
>>     RAM je potřeba na ten textový řetězec, standardně se ukládá do RAM
>>     jako proměnné. Dá se vynutit jeho uložení do FLASH makrem F().
>>
>>     Serial.println(F("Retezec ve FLASH"));
>>
>>     Martin
>>
>>         ------------------------------------------------------------------------
>>         ----- Původní zpráva -----
>>         Odesilatel: "Jirka Mww" <jirka.mww at gmail.com
>>         <mailto:jirka.mww at gmail.com>>
>>         Příjemce: "HW konference" <hw-list at list.hw.cz
>>         <mailto:hw-list at list.hw.cz>>
>>         Datum: 24/10/2019 13:41
>>         Předmět: Arduino a alokace mista pro promenne
>>
>>         Dobrý den,
>>         mám tady rozpracovaný "větší projekt " s Arduinem Mini s
>>         ATMEGA328. Větší to je jen z hlediska použitelnosti toho
>>         procesoru, jinak nic moc náročného. Při překladu se mi ale
>>         začala objevovat hláška, že budu mít brzo málo místa pro
>>         proměnné v RAM , přitom jich tam zas až tolik není.
>>         Mám tam ale dost ladících výpisů, ve velké většině jen pevný
>>         text o tom, že se něco stalo.
>>         Když některý z těch výpisů zakomentuji, místo pro proměnné se
>>         okamžitě o několik bajtů zvětší. Můj dotaz je tedy, na co
>>         potřebuje Arduino pro každý příkaz
>>         serial.print ("hlaska"); nejake místo v RAM. Kdyz jsem jeste
>>         psal v assembleru, měl jsem proceduru, ktera měla za svym
>>         volanim primo umisteny text v ASCI , zakonceny nulou a tento
>>         text se vypsal bez naroku na pamet RAM. Nevite, jak to dela to
>>         Arduino ? Docela bych tomu chtel rozumet.
>>
>>         Zdravi
>>         Jirka Sloupenský OK1MWW
>>         ------------------------------------------------------------------------
>>         _______________________________________________
>>         HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
>>         Hw-list at list.hw.cz <mailto:Hw-list at list.hw.cz>
>>         http://list.hw.cz/mailman/listinfo/hw-list
>>
>>     _______________________________________________
>>     HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
>>     Hw-list at list.hw.cz <mailto:Hw-list at list.hw.cz>
>>     http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list at list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list