Debugger pro Arduino

Odpovědět
butan
Příspěvky: 109
Registrován: 02 dub 2019, 07:06

Debugger pro Arduino

Příspěvek od butan »

Mám na mysli opravdu levný debugger, a jeden je tady:
https://www.avrfreaks.net/forum/low-cos ... skey=medbg
Podle českých popisků ve fotkách bych se nedivil, kdyby autor nápadu byl třeba tady na fóru?
Původní příspěvek jsem odhalil, zde: (autor Michal Dudka z Olomouce)
http://elektromys.eu/clanky/avr_debuggery/clanek.html
Lubor
PS. kdybychom ten zamčený atmega nějak vyčetli, dalo by se to rovnou nahrát do Leonarda...
Tak nebylo zamčené jak jsem očekával. Půjčil jsem si Jtag, a jednoduše ho vyčetl.
A tadyhttps://hackaday.io/project/162372-xplained-yourself
už je vylepšená debuggovací destička, a binárky kterými to umí obsluhovat i další modernější procesory. (asi povytahované z dalších xplained kitů)
Naposledy upravil(a) butan dne 12 pro 2019, 10:25, celkem upraveno 4 x.
butan
Příspěvky: 109
Registrován: 02 dub 2019, 07:06

Re: Debugger pro Arduino

Příspěvek od butan »

Docela levný, a přitom podstatně lepší debugger je popsán tady:
http://www.elektromys.eu/clanky/avr_redukce/clanek.html
Samotný produkt je zdehttps://cz.farnell.com/microchip/atatme ... tmel%20ICE
Umí to všechny Atmely včetně 32bit, spolupracuje s avrdude (u toho xplained nevím, ale výhledově bude určitě také podporován), umí to deuggovat-programovat i atmela s ničším napájením než 5V a v režimu ISP se dají konfigurovat hodiny.
Lubor
A když zrovna nedebuggujete, dá se ten AtmelIce použít jako usart, nebo spi pro výpis dat z laděného zařízení. Nazývají to DGI (data gatewai interface).
Naposledy upravil(a) butan dne 28 lis 2019, 08:22, celkem upraveno 3 x.
Uživatelský avatar
gilhad
Příspěvky: 262
Registrován: 29 kvě 2015, 00:36
Kontaktovat uživatele:

Re: Debugger pro Arduino

Příspěvek od gilhad »

Kdyz uz se tu o tom mluvi - jestli to dobre chapu, tak si clovek poridi nejakou takovouhle desku a Atmel Studio a muze krokovat programy na Arduino UNO s tim, ze se pripoji na takovy ten sestikolik pro ISCP.

Da se ted neco nejak rozumne provozovat i na Linuxu?
  • Odkazy Atmel studio vedou na neexistujici stranky neexistujiciho Atmelu, vyhledavani "Wine atmel studio" ukazuje prastare verze ve stavu "Garbage".
  • jde mi o to jak zacit s debugovanim atmega328 a Arduino Micro, takze to nemusi byt zrovna Atmel Studio, ale "kazdy" se na nej odkazuje
  • Vyhledove (tak behem pristiho roku) chci prejit z *.ino + vlastni knihovny + wiring a spol na *.cpp + vlastni knihovny +? (ono se to *.ino pridanim par hlavicek (a doplnenim deklaraci) da taky prepsat na *cpp)
Takze bych rad neco jako TurboDebugger blahe pameti, kde by se dalo prochazet kodem v Ccku, hazet do nej breaky a cist promenne a zaroven to eventualne krokovat i do assembleru a mit tam moznost tech breaku a cteni promennych taky, s tim, ze by ten debugovany program bezel na skutecnem HW (teda nejaka ta desticka se shieldama, soucastkama okolo a tak, kde motory skutecne rusi komunikaci po dlouhych volnych dratech a nejsou to jen jejich idealizovane ikony).

Protoze se chystam zacit, tak je mi celkem fuk, jaky konkretni debugger to bude, protoze se to budu muset naucit od zacatku, neumim aktualne zadny.
DavidO
Příspěvky: 1133
Registrován: 01 kvě 2013, 21:27

Re: Debugger pro Arduino

Příspěvek od DavidO »

Obecně pro in-circuit ladění je často používaný JTAG. Jakkoli původně byl na něco jiného, tak na ladění je ho s podporou výrobce často použít možné (i když já si spíš myslím, že než debugovat krokováním apod. je lepší psát správně ;-) a když to nefunguje, tak se podívat do kódu a říct aha, tady :lol:), bohužel Atmel ho dlouhodobě podporoval jen proprietárně a jen na Windows, a jak to je od převzetí Microchipem, už ani nesleduju. Nějaké pokusy pro ladění AVR i bez Studia na linuxu ale jsou, mrkni na "AVR debugging using gdb and AVR Dragon under Linux (Ubuntu): https://www.avrfreaks.net/forum/tutsoft ... nux-ubuntu . gdb je teda jen textový a pro začátečníka dost těžký, ale zato je dost mocný, a Dragona bych tu myslím mohl mít aspoň na chvíli k půjčení. A ještě jsem teď narazil na AVR Studio for Linux https://www.avrfreaks.net/forum/avr-studio-linux-0
Atmel Studio podle mě ve Wine fungovat moc nebude, už jen proto, že posledních několik verzí Studia je přiohnuté Microsoft Visual Studio, které používá kdejaké fíčury Windows a .NET apod., takže bych si nedělal moc nadějí, že to ve Wine bude plně naimplementované (WIne je a z principu bude vždycky pozadu).

Rozhodnutí zahodit Arduino chválím :D Knihovny použij avr-libc: http://nongnu.org/avr-libc/user-manual/ . Arduino je v hloubi používá (skrze Wiring) a na rozdíl od těch příšerností, co jsou v knihovnách Arduino, avr-libc je nejen funkční a správné, ale i kulturně napsané (akorát to uživatelé Arduina obvykle nevědí a píšou si vlastní knihovny dělající to, co už mají k dispozici, ale píšou si to blbě ...)

Wiring je framework pro řadu kontrolerů, to je otázka, jestli ho vyřadit nebo využívat, má svoje přínosy i svoje nevýhody už jen proto, že to je obecnější framweork. Ale aspoň není dotažený do takového absurda a nepoužitelna, jako Arduino.
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.
Uživatelský avatar
gilhad
Příspěvky: 262
Registrován: 29 kvě 2015, 00:36
Kontaktovat uživatele:

Re: Debugger pro Arduino

Příspěvek od gilhad »

Diky, postupne se tim zkusim prohrabat, ted uz to najdu vzdycky :)

A spravne to napsat na prvni pokus je samozrejme idealni, ale kdyz se zrovna nezadari, tak je obcas jednodussi se podivat, co to dela doopravdy, nez spekulovat nad tim, co by to delat melo, kdyby to fungovalo, jak si predstavuju, ze by to fungovat mohlo. Takze takovy protipol k tomu "vem to na Robodoupe a koukneme na to osciloskopem" :)
butan
Příspěvky: 109
Registrován: 02 dub 2019, 07:06

Re: Debugger pro Arduino

Příspěvek od butan »

Já znám jen 3 atmelovská arduina, uno (totéž platí i pro nano), leonardo a mega.
To uno jde debuggovat přez ICSP(ISP), a dají se k tomu použít obě zařízení z mých prvních 2 příspěvků. Ale je třeba na unu odstranit C5 (C8 na čínském klonu), a pak už to zase nepůjde downloadovat z arduino ide. Čisté řešení by bylo sloučit oba signály hradlem.
leonardo a Mega jde debugovat jen přez JTAG, ten na nich ale není přímo vyveden jako standardní 10-ti pinový konektor. Musíš se napíchnout na 4 správné datové piny, a přivést to na na krabičku z mého druhého příspěvku(JtagIce), nebo na ten Dragon a jsou asi i další možnosti, atmel těch debuggerů nabízí více.

Takže JtagIce je asi nejuniverzálnější volba, ale také neumí vše, třeba neumí HVprogramování. Nejde s tím odemknout čip který je zamknutý. To (a nic jiného) umí třeba https://hackaday.io/project/5179-avr-hv ... r-avr-mcus
A taky numí vypnout napájení laděnému procesoru, takže tě o to atmelstudio občas požádá. To ten xplained si napájením cukne sám.

S Atmelstudiem to pojede, a dokonce je možné oba debuggery upgradeovat na nejvyšší verzi.
Atmel zveřejňuje rozhraní svých debuggovacích krabiček směrem do počítače, https://www.microchip.com/webdoc/GUID-3 ... index.html takže nástroje jako avrdude a avr-gdb s nimi spolupracují.
Co si ale atmel tají, je třeba to debugWIRE rozhraní. Tím si zajišťuje monopol na svoje debuggery.https://hackaday.com/2018/04/24/dissect ... debugwire/
Lubor

Všiml jsem si, že v posledním arduinu uno wifi už je implementovaný čip 32U4 tak že by mohl obsahovat mEDBG. Třeba se v brzké době objeví možnost krokování i v arduino ide... Tam (uno wifi) se ale už nedebuguje přez dwire, tak pohledem do schématu neumím posoudit kompletnost zapojení.
Odpovědět