Přechod z AVR Studio s GCC: zkušenosti s alternativními IDE

Zdravím diskutující.
Uvažuji o přechodu z AVRStudia s GCC na jiný produkt. Zřejmě bych zkusil CodeVision nebo MicroC od MikroElektronika. Nevadí, bude-li placený. Jaký máte názor na tyto programy? Co používáte vy?
Díky Karel

:arrow_right: administrator: přejmenováno z "Vývojové prostředí…"

Code::Blocks - obecne IDE pro C/C++. K prekladu se pouziva opet gcc. Nic lepsiho neni. V instalaci ma krome plno dalsich, i zakladni sablonu pro projekt AVR i ARM.
codeblocks.org

Jde pouzit i MS Visual Studio. Umoznuje vytvorit project “Makefile”. Tady ale musi existovat soubor Makefile, VS se nijak samo nestara o spravu zdrojovych souboru. VS v tomhle pripade slouzi jako velmi dobry editor s vymakanou Intellisense. Chvili jsem s tim pracoval taky, ale CodeBlocks vyhrali hlavne univerzalnosti pro cokoliv v C a rychlosti. VS je moloch a cim novejsi verze, tim je pomalejsi. Ale pro toho, kdo je zvyklej na VS i tohle muze byt moznost.

Když se to tak vezme, tak psát můžešv jakémkoli editoru jakéhokoli IDE a přeložit to potom v AVR studiu.

Já osobně píšu v Codevisionu, u kterého se mi líbí, že ná spoustu knihoven nejen pro periferie daného MCU, ale i pro spoustu externích obvodů, LCD displejů i grafických displejů, takže se ušetří spousta práce s vymýšlením, nebo i hledáním na internetu vymyšlených věcí. Třeba komunikaci po 1Wire s teplotním čidlem Dallas bych asi dával do kupy hóóóódně dlouho.
Podobně je na tom i Mikro C pro AVR.

Codevision ale jako snad jediný nemá svůj debugger a používá ten z AVR studia.

Jinak jsem si jen tak pro zajímavost nainstaloval C::B, když ho kuto tak vychvaluje a zdá se mi opravdu hodně dobrý - dalo by se říct v porovnání s taky zadarmovým AVR studiem “nebe a dudy”. C::B je opravdu hodně vymakaný, navíc obsahuje i GUI. A při přechodu na ARM (což každého koho programování jednočipů chytlo srejně jednou čeká) se navíc nemusíš zabydlovat v novém prostředí.

Já bych ti teda ten C::B asi taky doporučil, i když sám asi zůstanu u výše uvedené kombinace už jen prot, že jsem si zvykl ladit programy “in system” přes Dragona a ten myslím chodí jen s AVR studiem.
A ARMy už jsem začal pokoušet v Atollicu.

Ja po prvnim seznameni s C::B nejak nadsenej nebyl, ale to vsechno prijde az po nejakem case pouzivani. Jde tam nastavit vsechno mozne i nemozne a to muze zacatecnika trochu odradit. Verze 10.05 ktera je oficialne na webu je stara. Je potreba jit do Nightly verzi a stahnout nejnovejsi. ARMy v tom delam taky a i programy pro windows - umi spolupracovat s wxWidgets a ma vlastniho navrhare oken.

Ahoj,
doufám, že jen neopakuji něco, co už je jinde vyřešené, ale mě se to nepovedlo nalézt.
Chci použít C::B pod windows a mám problém s funkcí sprintf apod. Konkrétní chyba: undefined reference to __mulhi3
Za jakýkoliv nápad děkuji…

Mam dve veci:

  1. vedel by mi niekto povedat ako v takom MikroC alebo CodeVision alebo aj v Arduine prebehne zavolanie nativnej funkcie ktora ma cez UART vyslat 250bajtov?
    To tam ten program stoji a caka kym sa cinnost neukonci,alebo sa prenos deje “na pozadi” a ja si iba cas od casu checkujem ci sa uz skoncil a nemusia mi stat tlacitka a obsluha muxovaneho displaya a tak podobne. Obdobne bi ma zaujimalo ako pracuju “nativne” funkcie vyssie uvedenych prostredi trebars na 1-wire a tak podobne.

Pravdu povediac, prave velke pochybnosti ci mi tieto funkcie “nezamrznu” procesor na cas kym skoncia, ma od takychto veci hlboko odradzaju a nevidim moc vyhodu v tom vyuzivat ovladace napisane niekym inym. Ak pocas komunikacie s 18B20 mam stratit nejake bajty prichadzjuce cez UART, alebo prestat muxovat 4x7segmentovku, no potes panbuh. :slight_smile: Ale mozno sa mylim a vsetko je inak.

  1. Ak je to tak ako si myslim, potom vidim velku vyhodu vyuzivat GCC prekladac (robi to aj Arduino), ktory zabezpecuje rovnaku “syntax” ci robim na AVR alebo na ARM, alebo na PC, alebo inde. A aj ked je C-cko vsade rovnake, prepisat funkcny program strednej dlzky z ICC do GCC mi trvalo cca 1 den a nakoniec som to vzdal. Tie rozdiely v headroch su skratka obrovske.
    Preto by som na Tvojom mieste, ak perpektivne v horizonte 10-tich rokov chces prejst na nieco ine, pouzival nieco co ma prekladac kompatibilny s kde cim. A to je zatial vo svete AVR iba GCC. Takze asi by bolo dobre najst si nejake IDE, kde je uz GCC zapracovane. Pokial viem najnovsie AVRstudio 5 pracuje na IDE pre Visual Studio. To si uz skusal, alebo chces odist z AVRstudia 4.1x?

Pro Martina : nevím jak Mikro C - ten si nenechá nahlédat do knihoven, ale v CodeVision například zmiňovaná funkce** printf** funguje tak, že do UDR předá první posílaný znak a zbytkem naplní buffer a končí. Odeslání zbytku znaků probíhá pak za pomoci přerušení. Chceš li navíc být informován o tom, že buffer je prázdný - klidně si to můžeš do funkce obsluhy přerušení USARTU připsat.

I když musím uznat, že třeba to čtení hodnoty čidla po 1wire trvá “pekelně” dlouho a všechno ostatní (kromě přerušení samozřejmě ) stojí. Ale protože v knihovnách CV můžeš cokoliv změnit - tak není problém si funkce upravit k obrazu svému - rozhodně jednodušší, než to celé vymýšlet za pomoci 100 stránkového DS příslušné součástky sám.

Jinak - zmiňovaný C::B používá taky GCC - viz cs.wikipedia.org/wiki/Code::Blocks

No a nakonec - zatím jsem moc chvály na nové AVR studio 5 nečetl. Asi je stále ještě ve stádiu chytání much :slight_smile: .

Je to nultá verze - pro zkoušeče, nikoli k práci. Nepamatuju, že by nultá verze nějakého SW pracovala podle představ tvůrců i uživatelů, proto vždy radši počkám až na nějakou vyšší. Obvykle netrvá její vydání moc dlouho :smiley:.

Předně se omlouvám az OT, ale tohle je jeden z důvodů proč tyhle arduina nenávidím. Pro člověka na první setkání s programováním AVR možná dobré, ale je to jak blackbox. Dovnitř vidět neni a složitější aplikace se na tom píšou dost blbě. (a ty ještě složitější na tom napsat nejdou protože přetečete se všema paměťma, nebo vám to půjde nejvýše rychlsotí slimáka)