Náhodou... Dost rychle zjistí, že knihovny tam jsou sice možná hezky napsané, ale jinak úplně k ničemu, takže si jednu po druhé bude stejně přepisovat (popř. hledat lepší implementace), což je na učení príma.
I z toho obaleného main()u člověk rychle vyroste, a pak je to klasický toolchain avr-gcc avr-ld avr-dude, který se prostě pověsí na oblíbený editor/IDE.
pouzivam len par zakladnych kniznic, ak mi to cas dovoli, tak si radsej robim vlastnu implementaciu a dam tam iba to, co potrebujem ja. Alebo pouzijem niektoru hotovu a popri tom si robim vlastnu a nejaky ten kod si kopirujem aj z tej povodnej.
Za mladych cias som si pisal programiky v asm, neskor trochu C a ked prisli deti, tak z casoveho hladiska arduino, takze s ucenim problem nemam
Asi uplne nerozlisuje mezi C a C++ a myslel "ciste c++"?
Ale ono to v nouzi jde i v C, https://github.com/DeqingSun/ch55xduino se snazi o Arduino s obycejnym C protoze pro CH55x se pouziva SDCC
No jestli nerozlišuje strukturované C od objektového C++, tak to je asi jako tvrdit, že mrkev je ovoce a vůbec nezáleží na tom, jestli to pletu se zeleninou, když to oboje roste ze země...
Jinak ten odkazovaný projekt bych chtěl vidět s jiným typem procesoru a nějakou rozumnější periferií, než je tlačítko a LED.
No a jinak čisté C++ to taky není, dokud tam IDE nedoplní include Arduino.h a deklarace funkcí a jádro chybějící main. Taky tam nefungují cin a cout proudy atd.
8. 10. 2025, 17:34 editováno autorem komentáře
Toto opravdu již v roce 2025 ne. Ano SDDC občas sleduji, i jsem ze zvědavosti před let zkoušel, jestli by moje základní C knihovny nezkompilovalo a dokonce pomohl nějakými patchi na inline funkce. Ale to je zábava typu retro-herny. Přitom ano, uLAN nám na přelomu devadesátých let a začátku tisíciletí se SDCC na Intel 8051 chodil díky velmi specifickému psaní knihoven a jádru komunikace v Assembleru z našich předchozích projektů. Podařilo se mi zkompilovat nakonec i s těcmi opravami mojí AVL knihovnu, která je normálně na x86 na 2169 byte kódu a s mnoha testy 16 kB kódu. Na 8051 je ten základ i s optimalizaci 9412 byte a extrémně zjednodušený test na 22073 byte. Na procesoru s 32 nebo 64 kB Flash. tedy je vidět, že je to úplný nesmysl a jen opravdu hrátka pro fajnšmekry. Ale doporučovat SDCC někomu kdo začíná je katastrofa.
"je vidět, že je to úplný nesmysl a jen opravdu hrátka pro fajnšmekry. Ale doporučovat SDCC někomu kdo začíná je katastrofa."
souhlasim s tim ze dnes se pokouset programovat 8051 je katastrofa, ale dokud tady je, tak se neda nic delat. CH55x jsou velice levne cipy s jednoduchym zapojenim co umi USB a bezi i rovnou z 5V (pro USB piny maji interni 3.3V regulator) a na nektere jednoduche 'USB to xxx' veci fungujou a programovani z arduino IDE to proste ulehci. Bohudik uz jsou snad letos za zenitem a nahradily je (i cenou) risc-v verze (treba CH32Vxxx). Ale mimochodem sdcc se pouziva i na build znameho firmware pro levny logicky analyzator s Cypress FX2 https://sigrok.org/wiki/Fx2lafw , ten rozhodne neni nesmysl/hrátka /katastrofa. Ani nove RP2350 neumi USB high speed a lehce pouzitelnych, znamych, dostupnych, levnych cipu ktere ho umi je porad docela malo.
Pletete si pojmy. Nebavili jsme se o tom, že nejde v C napsat kód pro atmegu, který by šel zkompilovat avr-gcc a používal UART. Bavili jsme se o tom, že jazyk Arduino není čisté C a to není. Váš snippet neodpovídá běžnému zápisu v Arduino, ale klasickém u avr-C. V Arduinu se použije objekt Serial a jeho metody. Pochopitelně, že vzhledem ke zpětné kompatibilitě C s C++ to jde zapsat i v C.
A teď mi tam příhoďte include Arduino.h a zkuste to zkompilovat avr-gcc...