Uzbuđenje oko pojavljavanja na tržište novih Raspberry Pi uređaja je uvek ogromno – njihovi proizvodi, oblikovani godinama podrške od strane zajednice (i dobre proizvođačeve podrške) predstavljaju pravi način na koji razvoj tehnologije i treba da funkcioniše. Od savršeno stabilnih SBC-ova sa potpuno razvijenim operativnim sistemima do Raspberry Pi Pico MCU ploče koja je omiljena u zajednici još od svog debija 2021., jednostavnost upotrebe i visoko uglađeno korisničko iskustvo razlikuju ponudu kompanije od ponude njenih rivala.
Raspberry Pi dibag sonda koju ovde analiziramo sasvim dobro objašnjava svojim imenom sopstvenu svrhu: to je open-source debug sonda koja ima i UART i ARM SWD interfejs, i sve to po veoma atraktivnoj ceni od 12 dolara.
Pre nego što nastavimo, želeli bismo da se zahvalimo kompaniji Raspberry Pi koja nam je dala primerke uređaja korišćene u ovoj recenziji.
Specifikacije
Nema mnogo toga da se kaže o specifikacijama Raspberry Pi Debug sonde, jer je to u osnovi RP2040 razvojna ploča malog formata koja pokreće prilagođeni picoprobe firmver. Ovaj firmver se može pokrenuti na bilo kom standardnom Raspberry Pi Pico-u (kao i na svim drugim pločama koje pokreće RP2040), tako da on nije jedinstven za ovu sondu – ali stvaranje zasebnog proizvoda čiji je rad zasnovan na ovom softveru, nadamo se, ukazuje na planiranu dugoročnu posvećenost. I hardver i softver su open-source, što bi za neke moglo biti važan faktor.
Raspberry Pi-jevi 3-pinski konektori za otklanjanje grešaka su na uređaju. Tu je i USB port, nažalost u Micro verziji, koji se nalazi na vrhu. Smatramo da bi ovo mogao, i usuđujemo se reći, morao biti USB-C port. Razumemo potrebu za smanjenjem troškova kada se dizajnira ekonomičan proizvod, ali takođe smatramo da bi moderan konektor opravdao manje povećanje maloprodajne cene.
Look and feel
Brzo prevazilazeći našu jedinu stvarnu zamerku sa hardverom, nailazimo na jedno od najbolje dizajniranih pakovanja koje smo videli u poslednje vreme. Kompaktna pravougaona kutija se otvara kako bi u sebi otkrila samu sondu, čvrsto postavljenu u kartonsku pregradicu i uz nju četiri kabla – tri prilagođena kabla za otklanjanje grešaka i ugodno crveni USB kabl (kao što je uredno istaknuto tekstom „cables included“ na vrhu pakovanja). Kutija sadrži i neke pametne elemente dizajna, kao što su dijagrami ožičenja koji se nalaze na unutrašnjim klapnama kartonske kutijice.
U centru svog zanimljivog pakovanja nalazi se zvezda – sama Raspberry Pi Debug sonda u svom svom sjaju. To je sićušna ploča – malo deblja, ali dimenziono tek oko polovine dužine Raspberry Pi Pico-a. Pločica je umetnuta u simpatično prozirno plastično kućište sa utisnutim Raspberry logotipom i uz to i dva slova (U i D) koja označavaju UART i SWD port, respektivno.
Više puta smo spomenuli da dizajn nije suštinski važan aspekt u industrijskim i razvojnim uređajima, ali proizvodi poput ovog ponekad nas teraju da preispitamo svoj stav – količina finese u dizajnu je prilično impresivna – još više kada se uzme u obzir cena.
Upotreba
Sve sonde za otklanjanje grešaka su prilično jednostavni uređaji. One su u suštini drugi mikrokontroleri koji imaju zadatak da prikuplja različite podatke koje generiše glavni procesor u aplikaciji i prosleđuje ih niz vaš toolchain, na kraju opskrbljujući komplet softverskih alata za otklanjanje grešaka, kao što je GDB recimo, podacima potrebnim za njegovo funkcionisanje. Ono što Raspberry Pi Debug Probe omogućava je mnogo više kontrole nad kodom na niskom nivou nego što je to moguće putem integrisanih IDE alata. Stepen funkcionalnosti varira između modela sondi za otklanjanje grešaka, ali generalno uključuje programiranje, izvršavanje koda korak po korak i mapiranje memorije. Neki mogu ponuditi dodatne interfejse, kao što je to UART, ili je internet konekcijom omogućeno daljinsko otklanjanje grešaka.
Različite arhitekture jezgra specificiraju različite standarde za otklanjanje grešaka, a za ARM arhitekturu on se naziva SWD. Dok je Raspberry Pi Debug sonda prvenstveno namenjena za upotrebu sa pločama zasnovanim na RP2040, dobro će raditi i skoro svaki (podržan picoprobe firmverom, naravno) ARM MCU.
Međutim, ono što Pi Debug Probe nema je pun JTAG port, što treba imati na umu. SWD port je u suštini implementacija JTAG-a specifična za ARM, ali je ovaj drugi i dalje zastupljen u mnogim često korišćenim arhitekturama kao što su AVR i MSP430. Dakle, kao ilustrativni primer, nijedna od vaših legendarnih plavih 328P ploča neće biti kompatibilna. Raspberry Pi Debug sonda je proizvod modernog vremena.
UART upotreba
Hajde da se prvo fokusiramo na UART port koji omogućava sondi da deluje kao USB-to-UART most. Ovo je prilično korisna funkcija za otklanjanje grešaka, jer UART port sa tri pina može često biti krajnje rešenje kada sve ostalo ne zakaže u embedovanom sistemu. U zavisnosti od vrste otklanjanja grešaka koju radite, serijski komunikacioni port može biti i sve što vam treba.
Da bismo testirali njegove performanse, priključili smo sondu na širok spektar uređaja, sa minicom-om kao našim terminal emulatorom, i kao što se očekivalo, nismo imali problema sa slanjem ili primanjem podataka sa najširem mogućem nizu sistema.
I sve je bilo u redu dok nismo odlučili da ispitamo port za otklanjanje grešaka ploče zasnovane na RK3588S. Bez dalje razrade, pomenućemo samo jednu činjenicu: svi Rockchip procesori koriste brzinu prenosa od 1500000 za svoj UART za otklanjanje grešaka. To je i nestandardna i duhovita brzina za protokol koji radi koristeći „magiju i moć prijateljstva“ (UART je notorno neprecizan sa sinhronizacijom, ali je protokol dizajniran na bazi toga da su uobičajena pojava varijacije od nekoliko procenata u brzini prenosa između dva uređaja koja komuniciraju, što je očigledno mnogo manji problem kada se podaci ne prenose na nekih 1,5 Mbps, već na uobičajenih 9,6 kbps). Sve ovo stvara nekoliko problema: većina konvencionalnih USB-to-UART kablova ne može da pređe 921600 baud – jednostavno su prespori, a mnoštvo softvera zaista ne voli nestandardne brzine prenosa. Čak ni čuveni fleksibilni minicom ne može da se nosi sa tim, što nas je primoralo u ovom slučaju da se okrenemo prilično opskurnom picocom alatu – koji nam je konačno omogućio pristup konzoli.
Na kraju smo uspeli, što je bilo prilično impresivno, jer je pokazalo veliku svestranost Pi Debug Probe-a. UART komunikacija je ovde zaista sekundarna funkcija, a ipak nadmašuje mnoga komercijalna rešenja.
SWD upotreba
Već smo se dotakli teorijske funkcionalnosti generičke SWD sonde. Vaš toolchain i korisničko iskustvo će se u velikoj meri razlikovati u zavisnosti od vašeg OS-a, ciljne platforme, jezika i mnogih drugih faktora – ali s obzirom na to da je Pi Debug Probe dizajniran imajući na umu Pi Pico, proći ćemo kroz neka od naših iskustava koristeći ova dva zajedno. Ovde ćemo koristiti macOS. Koraci bi trebali biti manje-više slični za Linux korisnike. Korisnici Windows-a, nažalost, treba da prate potpuno drugačiji skup uputstava.
Nakon kloniranja zvaničnog Pico SDK repozitorija sa GitHub-a, zajedno sa projektnim primerima, instalirali smo neophodan softver koji uključuje OpenOCD i GDB. Podešavanje alata da rade iz komandne linije bio je prilično lak podvig, jer se čini da se Raspberry Pi priklonio korišćenju standardnog CMSIS-DAP protokola umesto „bit-bang“ picoprobe protokola koji je koristio u ranijim verzijama firmvera, što sada omogućava da radite sa mainline verzijama OpenOCD-a (ovo je ključna premisa koju treba imati na umu kada pratite starije tutorijale koji su često napisani za sistem sa dva Pico-a – u to vreme je bio implementiran pređašnji protokol, tako da su se neke stvari radile drugačije – zbog toga preporučujemo da pratite najnoviju zvaničnu dokumentaciju).
Nakon kompajliranja primera, flešovali smo fajl blink.elf koji je odmah oživeo Pico-a. Zatim smo lako prikačili GDB na OpenOCD server – odlično.
Pokretanje Visual Studio Code-a je bilo malo teže, ali nije bila Raspberry-jeva greška. VS Code u osnovi deluje kao grafički omotač za gore pomenuti konzolni proces. Međutim, da bi se to postiglo, mora da se osloni na veliki broj ekstenzija – od kojih su neke od drugih proizvođača. Pored toga, kompajler arm-none-eabi treba da cross-kompajlira – logično, čineći lanac softverskih alata prilično složenim. Količina promenljivih ovde generalno stvara podešavanje još komplikovanijim, ali uz nekoliko prepravljanja i uređivanja parametara u launch.json, uspeli smo da povežemo dibager.
Nakon što smo testirali par programskih primera i prošli kroz kod pomoću grafičkog editora, bili smo zadovoljni – čini se da sve funkcioniše kako treba!
Napomena: testirali smo ovo na Mac računaru zasnovanom na Intel-u, što znači da je GDB bio dostupan preko Homebrew-a. Noviji Mac računari zasnovani na ARM-u ovde moraju da koriste lldb umesto GDB-a – iskustvo ovih korisnika može se razlikovati od našeg.
Sve u svemu, sve ključne funkcije su tu. Testirali smo samo sa Pico toolchain-om, ali ne vidimo razlog zašto ga i drugi alati ne bi podržali.
Zaključak
Raspberry Pi Debug sonda je prava poslastica! Volimo mnogo toga u vezi sa njom, od pakovanja do performansi. Sviđa nam se što je open-source, što kompanija zvanično podržava hakovanje vaše sopstvene sonde za otklanjanje grešaka koristeći ovaj firmver (u stvari, ova opcija prethodi samoj sondi) i to koliko je jednostavna za korišćenje.
Performanse su takođe vrhunske, i na UART kraju i na SWD kraju. Iako da, postoje neka ograničenja – nema punog JTAG porta i sonda koristi pomalo zastareli Micro USB port – ona još uvek košta samo 12 dolara. Samo pre jedne decenije, neke manje sposobne sonde prodavale su se za preko 200 dolara.
Postoje i druge jeftine opcije za otklanjanje grešaka, nemojte nas pogrešno shvatiti – od ranije pomenutog „Pico-with-the-firmware“ rešenja do odlomljivih STLink sondi ugrađenih u ST-ove NUCLEO komplete, preko onih jeftinih generičkih – postoji velika konkurencija na tržištu. Ipak, ne postoji ništa tako elegantno dostupno po ovoj ceni – pa su čak i SEGGER-ove početne ponude (one su, na primer, uporedive po praktičnosti) daleko skuplje, a ne nude mnogo više.
Sa prebacivanjem sa picoprobe protokola na CMSIS-DAP, Raspberry Pi Debug Probe zaista zaslužuje da sebe nazove potpuno funkcionalnim rešenjem za otklanjanje grešaka za razvoj ARM-a.
Tražena cena od nije mnogo za tako svestran uređaj, i mi bismo preporučili da odmah uzmete jedan ili dva kompleta. Ako niste uvereni, uvek možete da flešujete picoprobe firmver na Raspberry Pi Pico i isprobate funkcionalnost. Iako možete da nastavite da koristite ovo rešenje, mi bismo vam toplo preporučili da uzmete zvaničnu sondu, jer ona, ako ništa, eliminiše nered sa kablovima koje ćete morati da tripte prilikom onog prvog.
- Kako u samo 8 korakada angažujete robota u proizvodnji - 04/10/2024
- Melco-Buda: Novi HIOKI uređaji - 04/10/2024
- Toocaa L2 10W i 20W laser: uporedni test - 04/10/2024