Jak mě mění AVR GCC ?

28. srpna 2012 v 3:41 | Petr |  Roboti
Robotici jsou tak výrazně programátorsky orientování, že na Robotour 2009 kde jsem vypomáhal jako organizátor se mi jeden kolega svěřil : "Mně by nejvíce vyhovovalo kdyby mi robota někdo postavil a všechny důležité funkce vyvedl nahoru na nějaký mnoho-pinový konentor." Pak se chvilku zamyslel a řekl "Nebo ne - lepší by byl USB port s dokonale zdokumentovaným (komunikačním) protokolem".
Takže když tvrdím, že v robotech je třeba mít i dolní propust, tak je to vlastně skoro sprosté slovo. A nebudu se divit, že se na mně v Praze kamarádi sesypou, proč odvádím mládež od meritu věci k nepodstatnostem jako jsou tranzistory ....

Proto ode mně neočekávejte, že svůj milovaný AVR assembler a programování v něm zavrhnu a odvolám. Neodvolám. Nicméně moje prázdninové kontakty s AVR GCC - tedy s GNU kompilátorem Céčka pro AVR mikrokontroléry už nese zajímavé ovoce - zatím spíše v hlavě a v pocitech.

První věc GCC překládá zatraceně dobře - některé konstrukce dokonce překládá efektivněji, než když jsem je psal ručně, protože psaní v assembleru je únavné a člověk má tendenci ke CUT and PASTE programování z předpřipravených fragmentů.

K samotnému jazyku C se nebudu vyjadřovat - já jsem vyrostl v Pascalu, který měl z pedagogického hlediska jasná pravidla. Linuxáci, kterí v 60 letech vymysleli C však považovali jasná pravidla za "neflexibilní" takže výsledek se dostavil - jakoukoliv kravinu v C napíšete kompilátor přeloží a pak se nestačíte divit, co se děje (nebo neděje). Zejména v mikrokontrolérovém světě, kde blikající LEDka je často jediný ladící výstup je tohle MEGAOPRUZ. Vůbec bych se nedivil kdyby kvůli rozdílu mezi A=1 a A==1 spadlo nějaké letadlo ....
Kombinace C a inline assembler - kde jsou ty krásné časy Turbo Pascalu kde jste místo BEGIN napsali ASM a pak už jste jeli v assembleru - MOV AX, BX; ADD AX, CX atd.... Způsob jakým se do GCC píšou assemblerové fragmetny fakt musel vymyslet nějaký autista, nebo psychotik, kterému tenhle styl připadal srozumitelný. Samo za sebe mluví, že i v nejnovějším návodu na LibC (systémové knihovny jazyka C) se autoři omlouvají, že ani jim není vše zcela jasné !!!!

No a ty "pocitové změny" ? Jestli jste programovali nějakou matematiku v ASM tak víte že to je dřina i moje oblíbená 32 bitová fixed point aritmetika v ASM je fuška. Takže snadnost programování v C je svůdná a trochu mě tlačí navěsit na procesor více "blikátek" aby se dalo v rámci testování více blbnout. V každém případě teď sám sobě blahopřeju, že jsem třeba takovou "Hlavičku Pentia 6" udělal s Externí SRAM a grafickým displejem, protože jejich programování je přesně ten druh hraní, ke kterému C svádí.

Ptáte-li se jestli doproučuju programovat AVR v C ? Možná budu za konzervativce, ale začátečník by se měl naučit princip KISS tedy Keep it Simple for the Stupid a k tomu C moc nevede a naopak dřina s ASM jednoznačně ano. Pokud ale chcete vyrábět složité roboty C je prakticky jediná možnost jak se neudřít nad softwarem.

Dnešní rada pro blondýny zní : Pokud vás štve, že vám říkají "blbá blondýna" jsou dvě cesty jak se toho zbavit - jedna ve směru "chytrá blondýna" a druhá ve směru "blbá bruneta". Je na vás, kterou cestou se vydáte...
 

Buď první, kdo ohodnotí tento článek.

Komentáře

1 Ku-li-na Ku-li-na | Web | 28. srpna 2012 v 20:14

Krásný blog, to nemá chybu.

2 Karel Karel | 28. srpna 2012 v 20:55

"Linuxáci, kterí v 60 letech vymysleli C..."
Chuck Norris je asi nula protože Linus Torvalds dle tebe naprogramoval Linux v jazyce C v prvních třech dnech hned po svém svého narození (28.12. 1969).

3 Žirafka Žirafka | Web | 29. srpna 2012 v 17:57
4 Karel Karel | 29. srpna 2012 v 19:38

[3]: A co jako? Píše "Linuxáci v 60. letech". A ví pán jak se řekne po indiánsky Windows? "Přesypací hodiny, bledá tvář dlouho čekat."

5 Žirafka Žirafka | Web | 30. srpna 2012 v 6:07

[4]: Asi si budu muset dát po ránu frťana, protože smysl Vašeho příspěvku mi poněkud uniká.

Na té stránce Wikipedie se píše o autorech a historii Cčka a je tam i napsáno, kdy jej autoři napsali. Linuse Tovaldse tam nikde nevidím...

6 Karel Karel | 30. srpna 2012 v 6:40

Linux vznil v 90.letech, tedy v 60. letech těžko mohli být nějací linuxáci. Maximálně unixáci :-)

Komentáře jsou uzavřeny.


Aktuální články

Reklama