Portál AbcLinuxu, 24. dubna 2024 02:55

ARM debugging - Black Magic Probe, orbuculum, ITM/ETM trace

22.3.2020 03:51 | Přečteno: 2277× | programování | Výběrový blog

Embedded debuggingem - ARM, MIPS, RISC-V - se už zaobírám celkem dost let. Zde je přehled některejch užitečných nástrojů - debuggery, dekódování periferií přes SVD definice, hádání proč nastal fault. A méně známým featurám jako ITM/ETM trace.

Jako přehled, co všechno lze udělat u debugování ARM procesorů lze najít v tomto dlouhém dokumentu. Nutno podotknout, že vznikal mnoho let, tudíž některé nástroje mají již jiný UI design (třeba zmíněný Qt Creator), ale obecně všechno co tam je, stále platí.

Hall of fame

Asi nejlepší nejprve zmínit užitečné nástroje, které za to stojí, většina open source (free as in code and free as in beer) nebo za rozumnou cenu:

Hall of meh

Zde jsou většinou drahé komerční nástroje, které až tak dobře nefungují a znova bych za ně nezaplatil. Pro pochopení následujícího odstace: ETM trace je prostře schopnost zaznamenat všechny instrukce, které byly spuštěny na procesoru. Je to součást ARM CoreSight.

Screenshoty

Zde zkusím ilustrovat, na co je každý tool dobrý.

ETM trace (zaznamenání všech instrukcí mezi dvouma breakpointma, Instruction trace vlevo uprostřed):

SystemView ukazuje, že Systick interrupt, který byl manuálně upraven na víc než 50000 cyklů, může preemptnout USB interrupt (značeno jako ISR #93), který má nižší prioritu (nastává late arriving místo tail chaining):

Black Magic Probe

Vector catch exceptionů lze nastavit přes "monitor vector_catch nazev_exceptions". Na rozdíl od Ozone, vector catch tady ukazuje i stack trace (Ozone udělá breakpoint na Fault handleru, tady vidíme hardfault než se dostane k handleru):

 target extended-remote /dev/ttyBmpGdb
Remote debugging using /dev/ttyBmpGdb
 monitor swdp_scan
Target voltage: unknown
Available Targets:
No. Att Driver
 1      STM32F40x M3/M4
 attach 1
 start

Dekódování periferií přes SVD definice

CLion, Ozone, Ghidra mají přímo možnost nahrát definice registrů zo SVD definice a pak je zobrazovat.

V GDB je na to potřeba skript: How to debug a hard fault on ARM

Příklad dekódovaní části DMA registrů:

GDB

CLion

ITM a ETM trace

ITM je instruction trace macrocell a ETM je embedded trace macrocell. Velmi zjednodušeně, s ITM si můžete samplovat s určitou frekvencí, kde se kód nachází, nebo přes SWO pin vypisovat data, na ETM je typicky potřeba 4 TRACEDATA piny a 1 TRACECLK pin procesoru. ETM by mělo jít "přesměrovat" i přes SWO pin, ale nebude kompletní proti použití TRACE pinů.

Pulseview/Sigrok má decoder pro ITM/ETM na NRZ SWO pin, ale ne pro všechny TRACE piny. Na to je orbulucum na Lattice HX8K desce (bohužel se mi to nepovedlo nikdy rozchodit).

Nastavování ITM a ETM je strašný opruz pokud na to nemáte nástroj. Jeden example jak to dělat je například tady. Ale když se podíváte na ten configure-trace.openocd soubor, tak buď tomu nebudete rozumět, nebo budete muset luštit v manuálech.

ITM trace je ta jednodušší a i relativně levné nástroje ji rozumí (např. STMicro nástroje). Naproti tomu ETM trace je fakt složitá a bez profesionálních nástrojů se moc daleko nedostanete. I to orbuculum zabralo spoustu času. Na ETM trace jsou asi 3 nejznámější nástroje, Segger JTrace, Lauterbach Trace32 a Keil uLink Pro. Každý stojí tak jednu ruku. Já mám zrovna JTrace a mám problém i s jejich referenční STM32F407 doskou. Zrovna mám pocit, že jsem dostal nějaký nový model s novými featurami, ale i novými bugmi (jiní kolegové říkají, že jejich starší JTrace funguje mnohem lépe).

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

22.3.2020 10:49 Petr
Rozbalit Rozbalit vše Re: ARM debugging - Black Magic Probe, orbuculum, ITM/ETM trace
Odpovědět | Sbalit | Link | Blokovat | Admin
Opravdu to dnes někoho zajímá?
22.3.2020 16:09 atalax | skóre: 2
Rozbalit Rozbalit vše Re: ARM debugging - Black Magic Probe, orbuculum, ITM/ETM trace
Nechápu. Jako že už mikrokontroléry nikdo v dnešní době neprogramuje?
Jendа avatar 22.3.2020 18:39 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: ARM debugging - Black Magic Probe, orbuculum, ITM/ETM trace
Gréta avatar 23.3.2020 13:14 Gréta | skóre: 36 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: ARM debugging - Black Magic Probe, orbuculum, ITM/ETM trace

noa třeba to jakože fakt myslel tak že se debuggery nepoužívaj ale nevim :O :O :D :D

23.3.2020 08:48 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: ARM debugging - Black Magic Probe, orbuculum, ITM/ETM trace
Ale ano, najdou se kupodivu i lidé, kteří mají za to, že když už musejí sedět doma, věnovat se něčemu z oblasti IT bude pro jejich duševní zdraví prospěšnější než nonstop sledování ČT24 proložené hledáním informací o epidemii na webu.
23.3.2020 11:53 _
Rozbalit Rozbalit vše Re: ARM debugging - Black Magic Probe, orbuculum, ITM/ETM trace
Ok, věnuj se nesmyslům, místo abys přispěl k řešení skutečných problémů
Jendа avatar 23.3.2020 12:24 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: ARM debugging - Black Magic Probe, orbuculum, ITM/ETM trace
Nešlo by rovnou napsat nějaké body, jak může autor/Kubeček/já přispět? Osobně aktuálně také pokračuju ve vývoji hardware s epidemií nesouvisejícího…
Fluttershy, yay! avatar 28.3.2020 23:55 Fluttershy, yay! | skóre: 92 | blog:
Rozbalit Rozbalit vše Re: ARM debugging - Black Magic Probe, orbuculum, ITM/ETM trace
Nějaký přehled potenciálně relevantních projektů: opensource.com: 7 open hardware projects working to solve COVID-19 a další přehled.
🇵🇸Touch grass🇺🇦 ✊ no gods, no masters
23.3.2020 13:05 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: ARM debugging - Black Magic Probe, orbuculum, ITM/ETM trace
Problémy, jejichž řešení se věnuji, jsou pro mne dostatečně skutečné. Nemluvě o tom, že i když fyzicky také "sedím doma", logicky stále "jsem v práci", takže nepotřebuji hledat způsoby, jak "zabít nudu".
5.4.2020 23:07 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: ARM debugging - Black Magic Probe, orbuculum, ITM/ETM trace
Ok, věnuj se nesmyslům, místo abys přispěl k řešení skutečných problémů
Ok, napiš co děláš (včetně pics or it didn't happen) a můžem se bavit, trolle...
Josef Kufner avatar 23.3.2020 12:12 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: ARM debugging - Black Magic Probe, orbuculum, ITM/ETM trace
Vypnout dnes televizi je pro zachování duševního zdraví docela důležité. Teď už se situace ustálila a jedny večerní zprávy denně bohatě stačí. Přecijen je potřeba dělat i něco užitečného a ne se jen klepat, kdy nás dostihne vir. Dobrým nápadem je navázat kontakt s ostatními tvořivými lidmi, třeba na FB je dost skupin, a nějak pomoci ostatním. Ale i udržení běžných věcí v chodu si zasluhuje pozornost.
Hello world ! Segmentation fault (core dumped)
Max avatar 22.3.2020 14:40 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: ARM debugging - Black Magic Probe, orbuculum, ITM/ETM trace
Odpovědět | Sbalit | Link | Blokovat | Admin
Zajímavé, díky.
Zdar Max
Měl jsem sen ... :(
24.3.2020 17:09 Pavel Píša | skóre: 18 | blog: logic
Rozbalit Rozbalit vše Re: ARM debugging - Black Magic Probe, orbuculum, ITM/ETM trace
Odpovědět | Sbalit | Link | Blokovat | Admin
Díky moc za hezký přehled a inspiraci.

Co se týče doby, tak zajisté, pokud někdo dokáže zorganizovat projekt, který výrazným způsobem může pomoci se současnou situací, tak určitě má smysl zvažovat, jestli psát blog na jiné téma. Ovšem i tak je potřeba zvážit, jestli svými znalostmi v daném projektu mohu pomoci nebo spíš přispět k zmatkům a komplikacím s organizací.

Naopak mělo a má smysl výzkum v oblasti biologie, medicíny a chemie podporovat i v době, kdy zrovna není v hledáčku zájmu tržně orientované části společnosti. Doporučuji článek Jan Konvalinky z Akademie Věd IOCB/UOCHB. S tatínkem a kolegou jsme nainvestovali velké množtví našeho umu a i sokromých peněz do projektů přístrojů, které i v této instituci pracují a zajistili a finacovali pro zpracování dat SW který je open-source CHROMuLAN, který nejdete, že používají po světě vědci i s přístroji jiných firem místo SW možná i za statisíce, který často s příchodem nových Windows je zcela nefunkční. Firma, které jsme projekty dali v licenci vyrábět, tak si na inovaci našeho hlavního projektu akorát nechala od Prahy dát dotaci 5 milionů a prohlásili, že vše vyvinuli nově a sami. Přečtěte si odpověď ředitele

K čerpadlům využitým v AAA a podobné malému LCP5005 s výkresy PM. Naše čerpadlo je podobné, ale v principu jiné .Má jeden pohon , jiné vačky (viz přílohy). Ano koule s pístem je použita již z Mikrotechny a některé jednotlivé detaily k čerpadlu přizpůsobeny z PM .

Všechno byl vývoj mého otce a náš, který jsme si od privatizovaných (na zboření a stavbu hotelu) Laboratorních Přístrojů Praha koupili abychom ho mohli nabídnout dále světu. Takže překlad odpovědi, jezdíme v v autu, které stálo na ulici, že je vaše, vás nemusí zajímat, je to naše práce, natřeli jsme puklice na žluto. Ještě ve skutečnosti ten pohon je ostuda, protože pořádné řízení neumějí. I přesto, že nám takto většinu projektů zničili a pokazili, tak nyní investujeme v PiKRONu do výroby desek, aby mohli další přístroje do IOCB dodat.

Takže to je k přispívání získání znalosti potřebné pro řešení situací jako teď vznikla.

Co se týče těch, co teď přímo aktivně pomoc přímo v řešení hlavního problému nemohou, tak především nejméně produktivní je sedět na zadku a peskovat ty, co neztratili zájem něco i nezávislého na koronaviru dělat.

Kolega napsal blog o ARMech. Mimochodem, v těch sestavách, které možná po výběrovém řízení pro IOCB budou dodávané jsou Cortex-M3 a M4 (CPU deska). Takže třeba může návod inspirovat někoho, kdo jednou přispěje do elektroniky, která zrovna náhodou bude použitá v některém zařízení, které se bude třeba i při výzkumu vedoucímu k uzdravení nebo ochraně zdraví hodit.

Sám v tuto chvíli nemohu ve firmě třeba nabídnout například robotickou technologii pro urychlení PCR nabídnout nemohu. Chtěl jsem otevřenou robotickou technologii do světa přinést, ale neměl jsem na PR a tak jsem jí přinesl do bývalé skupiny na FEL. Využitá byla akorát k tomu, aby "zvítězili" v robosoutěži i přes to, že se snažili udělat vše, aby to, co jsem dodal nejvíce pokazili a kolega mi zakazoval se s lidmi, kteří na tom tenkrát dělali, se bavit. I tak jsem věřil, že má smysl přes školu znalosti šířit. Nakonec potřeboval k tomu, aby vyrostl na vedoucího embedded vývoje jiné součásti se mě zbavit úplně a potvrdil mi, že nepravdivě využil fakta, k tomu abych mu nepřekážel a tak dál a vysvětlil mi, že jsem k ničemu a moje firma také a další bývalý šéf, že jsem nic nepřinesl. No nic, takže PCR, nebo pěkný systém pro manipulaci s vzorky, který jsme plánovali teď nemám a z jejich robotického vítěztví je možná několik řádek na simulaci v našem projektu, ale gro zůstávalo tajné, stejně jako informace, že motion control dostali od PiKRONu. Stejně tak jako návrh HW pro Porsche, HW pro předmět PSR (také tam zmínku o PiKRONu nenajdete) a mnoho dalšího.

Takže se řídím tím, kde mohu v tuto chvíli nejvíc přispět, a právě nám zůstali všichni studenti odkázaní na distanční výuku. Opět, buď se můžeme ubezpečovat, že výuka přece v tuto chvíli nemá prioritu, nebo naopak ukázat, že nás ani tato překážka nezataví.a dokážeme i tak vychovat odborníky, kteří jednou budou schopní pro výzkum, lidstvo, cesty do vesmíru něco udělat. Na ČVUT se většina přiklonila k té druhé možnosti. Věříme, že má smysl do studentů investovat a něco je naučit a minimálně na FEL, kde jsem součástí dění vím, že mí kolegové vypouští krev, aby se podařilo zajistit techniku, webináře atd (jeden z pracovních dokumentů na našem výukovém Course Ware distant_teaching). Sám jsem se pokusil přispět alespoň nahráním přednášek, když je nemohu předvést studentům naživo. Protože nebyl nikdo, kdo by na zpracování měl čas, tak jsem se z vývoje ovladačů musel během jednoho týdne stát alespoň podprůměrným střihačem videa a když jsem to nějak po dvou týdnech vypětí zvládl, tak jsem se o informace podělil, aby třeba někdo další měl cestu jednodušší.

Takže vyčítavé reakce na to, že někdo dělá neco, co si sám stále myslí, že má cenu mě nezajímají a chci podpořit ty, co mají zájem a podržet je před lidmi, kteří akorát umí brát ne jen radost z tvorby, ale i celá díla a projekty a dotáhnout je často do zkázy a zapomnění.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.