Vývojové prostředí pro embedded

Wolf

Vývojové prostředí pro embedded
« kdy: 27. 09. 2017, 09:09:02 »
Ahoj

Začínál jsem na 8 bitových x51 a AVR8, pak jsem přešel k Armovským STM32 a SoC na hradlových polích.
Vyzkoušel jsem několik vývojových prostředí od "staromodního" shell + lepší notepad + Makefile po různé lehčí IDE (Codeblocks a jeho forky) až po mastodontní odnože Eclipsu.

V práci momentálně jedeme na forku Eclipsu pro C/C++ a není to ono. Je to prostě nenažraný bloatware, kde s každou aktualizací se podělá konfigurace pluginů nutných pro embedded vývoj, věčně blbne analýza kódu s indexerem atd.

Budu mít teď čas na vyzkoušení potenciálních alternativ, tak bych poprosil zkušenější programátory o doporučení, co bych měl vyzkoušet. Co takový Sublime text, různé forky Atomu?

Jde mi o
-snadnou integraci programátoru cílové platformy, debuggeru, deassembleru, vidět stack a registry...
-taková ta klasika jako code completion, indexování v projektu...
-nějaká interpretace výstupu buildu z externího toolchainu (Codeblocks a Eclipse tohle umí)
-nějaká integrace nebo pluginy pro GIT/SVN jsou plus


borekz

  • ****
  • 493
    • Zobrazit profil
    • E-mail
Re:Vývojové prostředí pro embedded
« Odpověď #1 kdy: 27. 09. 2017, 09:22:12 »
Ještě jsi zapoměl napsat, že to musí být zdarama a běžet pod Linuxem.
Problém je, že zdarma to optimalizovat nikdo nebude. Komerční IDE existují.
Eclipse je otesánek, ale je zdarma a jsou pro něj pluginy.

Já používám TortoiseSVN samostatně, kompilátory z commandline, debugger z commandline, a Notepad++ s pluginem NppExec, kterým občas pouštím kompilátor.

mrazík

Re:Vývojové prostředí pro embedded
« Odpověď #2 kdy: 27. 09. 2017, 14:39:57 »
Jde mi o
-snadnou integraci programátoru cílové platformy, debuggeru, deassembleru, vidět stack a registry...
-taková ta klasika jako code completion, indexování v projektu...
-nějaká interpretace výstupu buildu z externího toolchainu (Codeblocks a Eclipse tohle umí)
-nějaká integrace nebo pluginy pro GIT/SVN jsou plus
Tohle můžete řešit do nekonečna. Prostě si zvolte co vám vyhovuje a naučte se jak daný toolchain funguje. Pak si můžete pro projekt napsat ručně relativně jednoduchý makefile, který vám to bude celé řídit a na všechny ty divné pluginy se můžete vykašlat a přejít na jiné IDE je sranda. Já osobně používám kdevelop, asi bych ho uměl nastavit i pro debug ARM přímo v IDE, ale už jsem to léta nepoužil, raději si pustím gdb z příkazové řádky. Berte to tak, že gdb použijete jen když máte problém, a přidávat si tam další integrací do IDE moc nepomůže. Pomocí gdb si odladíte vrstvu, která přímo leze na hardware, vrstvy nad tím jsem se naučil ladit spíš tak, že si udělám nativní aplikaci s tímto kusem kódu a používám ladící výpisy. Při dodržování určité disciplíny to pak přeložíte pomocí stejného gcc / clang (cross) pro cílovou platformu a chová se to stejně. Většinou je tahle metoda efektivnější než se s tím párat přímo v cílovém zařízení, hlavně pokud je to složitější. Prostě pokud nevíte, jak to uvnitř funguje, pak vám sebelepší IDE nepomůže, když narazíte na nějakou vypečenou chybu. A že se jich tam může vyskytnout mnoho je dáno už tím, že je to celé dost složité. Ze zkušenosti můžu říct, že se pak jen člověk diví, jak takovou pitomost mohl přehlédnout. A přitom to můžete hledat několik hodin. On vám to třeba někdo do toho IDE nastaví, jemu to chodí, tak co. Ale nastavil to podle svého způsobu uvažování a vy pak použijete nějakou vychytávku se kterou on nepočítal a jste vedle. Pokud toochain znáte, poradíte si s tím, pokud ne, můžete si v lepším případě dopisovat s autorem, v horším to zabalit.

PetrM

Re:Vývojové prostředí pro embedded
« Odpověď #3 kdy: 27. 09. 2017, 14:54:24 »
Když to vezmu kolem a kolem, tak GDB + GCC + make je základ. Řeší se jenom to, co je nad tím. Stylem co komu vyhovuje.

Za sebe, Eclipse. Sice někdy opruz, ale navigace v kódu a ve výpisech je luxusní, pluginy pro všechno,... A podpora makefile projektů.

A z druhýho konce IAR EW. Kompilátor OK, ale za to IDE a za dokumentaci bych dal vývojářům takovou facku, že by se týden točili na židlích.

mon

Re:Vývojové prostředí pro embedded
« Odpověď #4 kdy: 27. 09. 2017, 15:08:00 »
vscode + ms c++plugin (je tam intellisense) + tasky co len spustaju externy build system + gdb je integrovane, aj remote sa da pripojit.



Wolf

Re:Vývojové prostředí pro embedded
« Odpověď #5 kdy: 27. 09. 2017, 15:16:31 »
Na debugger šahám taky jenom v nejnutnějších případech jinak aplikaci ladím přes systém logování chyb, warningů nebo info zpráv. Ale zrovna když jsem zkoušel gdb pro GCCčko, tak mi to konzolové ovládání přišlo neskutečně ubíjející oproti klikačkám v IDE, kde jsem hnedl viděl naklikané sledované proměnné, oblasti paměti, registry...
V kompilování ale zas upřednostňuju vlastní Makefile než nějaký vygenerovaný paskvil, ale to jsou věci, které se jednou napíšou a jedeš a pak mírně upravují.

armatura

Re:Vývojové prostředí pro embedded
« Odpověď #6 kdy: 27. 09. 2017, 15:18:12 »
Pro pripad, ze mas Mac (jak ostatne kazdy druhy na rootu) tak:
- navod jak nastavit kompilator a debuger https://www.davidyamnitsky.com/blog/2013/11/14/stm32-mac/

Atom editor ma par pluginu
- treba pro STlink https://atom.io/packages/stlink
- podpora ARM assembleru https://atom.io/packages/language-armasm
- prepojeni na GDB https://atom.io/packages/dbg-arm-none-eabi-gdb

armatura

Re:Vývojové prostředí pro embedded
« Odpověď #7 kdy: 27. 09. 2017, 15:19:53 »
Jo jeste jsem zapomnel https://atom.io/packages/platformio-ide . podporuje:

Atmel AVR & SAM, Espressif 8266 & 32, Freescale Kinetis, Intel ARC32, Lattice iCE40, Maxim Integrated MAX32, Microchip PIC32, Nordic nRF51 & nRF52, NXP LPC, Silicon Labs EFM32, ST STM32, TI MSP430 & Tiva, WIZNet W7500, Teensy, Arduino, ARM mbed, libOpenCM3, ESP8266, etc.

J

Re:Vývojové prostředí pro embedded
« Odpověď #8 kdy: 27. 09. 2017, 23:20:45 »
Ak IDE pre ARM, tak:
http://www.rowley.co.uk/arm/index.htm
Windows, Linux aj MAC.
Ale nie je zadarmo.

EmBitz

Re:Vývojové prostředí pro embedded
« Odpověď #9 kdy: 28. 09. 2017, 01:01:32 »
Divím se, že tu nikdo nezmínil EmBitz (dříve EmBlock). Nějakou chvíli už není zadarmo, ale 49€/rok není tak hrozné na to, kolik toho umí. Lepší je už jen šíleně drahý ARM Keil (který je tedy zadarmo pro celou řadu F0 a L0).

xxx

Re:Vývojové prostředí pro embedded
« Odpověď #10 kdy: 28. 09. 2017, 10:10:52 »
Embitz jsem právě používal než ho právě autor zpoplatnil. Keil zas není rozšířitelnej jako forky Atomu, codeblocksu, eclipsu....

.....

Re:Vývojové prostředí pro embedded
« Odpověď #11 kdy: 28. 09. 2017, 10:30:40 »
Vcelku běžná věc, že něco na postavené nad Eclipse nebude fungovat. Svého času existovala i stranka IHateEclipse.com

Ten soft je strasny a jen by mi nekde rekli, ze v tom delaji, nesel bych tam pracovat. Cas od casu se najde clovek s poruchou z autistickeho spektra, ktery neda na Eclipse dopustit. Uz jsem slysel i o takovemto exemplari navic strizenem s psychopatem.

Co CLion? Multiplatformni nebot je v udelan v Jave, pohodli srovnatelne s IntelliJ, cesky produkt, velice kvalitní IDE. Jako bonus je komercni - beru to jako plus. Delal jsem v tom jen na zkousku, nejsem Ceckar.

Re:Vývojové prostředí pro embedded
« Odpověď #12 kdy: 28. 09. 2017, 11:43:35 »

Kiwi

Re:Vývojové prostředí pro embedded
« Odpověď #13 kdy: 28. 09. 2017, 11:52:02 »
Vim

Kit

Re:Vývojové prostředí pro embedded
« Odpověď #14 kdy: 28. 09. 2017, 13:28:49 »
Vim

Nechtěl jsem zbytečně provokovat, ale také Vim.