DEL 2:
Mens vi i del 1 af denne artikel, som kan læses i Aktuel Elektronik 6/2025, beskrev, hvordan man skulle danne et projekt i Eclipse, så skal vi i del 2 se på, hvordan man konfigurerer Eclipse til at arbejde sammen med PICO. Vi starter med en introduktion af ultra low-power, men funktionsrige, mikrocontrollermoduler og fortæller, hvordan man kan programmere og debugge dem med et gratis, populært værktøj. Modsat mange andre high-end mikrocontroller-moduler leveres det aktuelle i et DIP-footprint for let prototyping hos såvel professionelle som hobbyfolket
Artiklen har været bragt i Aktuel Elektronik nr. 7 – 2025 og kan læses herunder uden illustrationer
(læs originaludgaven her)
Af Simon Bramble, staff engineer, Analog Devices
Projektet i del 1 var designet rundt om en MAX32625EVKIT-hardware, der er forskellig fra PICO-hardwaren, så den fil, som beskriver hardwaren i EV-kittet, skal ændres, så den passer til hardwaren afviklet på PICO. De originale boards.c-filer er lagret under:
C:\Maxim\Firmware\MAX32625\Libraries\Boards\EvKit_V1\ Source.
– og de nye boards.c-filer til PICO er lagret i zip-filen, der kan downloades via linket eller fra QR-koden sidst i artiklen. Kopiér hele Boards-directoryet fra zip-filen til det directory, hvor hovedprogrammet er gemt, som vist i figur 1. Dette directory beskriver de komponenter, der er inkluderet på PICO-printet.
PICO indeholder en bootloader, der gør programmet i stand til at køre. Bootloaderen tillader også, at den binære fil kan loades med drag-and-drop. Eclipse vil overskrive denne bootloader, hvis programmet er uploadet i MAX32625 med default-indstillinger. Linker-filen, kaldet max32625.ld, samler alle programmerne i en binær fil, som skal uploades i værtsmikrocontrolleren. Den bestemmer også, hvilken del af memoryen programmet bliver placeret i, og det skal ændres, så man ikke kommer til at overskrive bootloaderen. Den modificerede linker-fil er indeholdt i den downloadede zip-fil.
Kopiér linker-filen til projekt-directoryen, som vist i figur 1. Den Makefile, der er lagret i projekt-directoryen, fortæller compileren, hvor man kan finde linker-fil og Boards-directory, så den skal editeres til at pege på den nye location for den modificerede linker-fil og Boards-directoryet. Kopiér den nye Makefile fra zip-filen til project-directoryen, som vist i figur 1 med overskrivelse af det oprindelige materiale.
I den nye Boards-directory kan man finde en modificeret board.c-file (i EvKit_V1\Source directory), og den beskriver forbindelserne til LED’erne og de ringetryk, der er på PICO’en. Det er let at se, hvordan den er konstrueret ved at sammenligne koden i figur 2 med PICO schematics, vist i figur 3.
Boards.c-filen er blevet drastisk modificeret, så den gør det muligt for PICO at printe data til et terminalprogram, som eksempelvis Tera Term, der kan være af uvurderlig betydning under debug-processen. Hvis man vælger at bruge en printfunktion, skal man konfigurere terminalprogrammet til at kommunikere med en baud-rate på 115.200, som vist i figur 4.
Bootloaderen kan efterlade visse periferienheder i en partielt konfigureret tilstand, og der findes mere kode i board.c til reset under initialiseringen, som vist i figur 5.
Endelig bruger PICO en anderledes powermanagement-IC i forhold til Evaluerings-kittet. PICO’s powermanagement-IC behøver dog ikke nogen form for programmering, da den kører med sine default-indstillinger, så de linjer af kode, der har skullet konfigurere den, er blevet slettet fra den nye board.c-fil.
Konstruktion af det endelige projekt
Zip-filen indeholder et sample-program, main.c i Template-folderen, og det detekterer, når der bliver trykket på én af PICO’s ringetryk, hvorefter RGB-lysdioden flasher on og off, og der udsendes to bytes data via SPI-porten og siden én byte data via UART’en, hvorefter der printes ”Hello” fra PICO på terminalprogrammet. Kopiér dette program ind i projekt-directoryen, så det overskriver originalen. Main.c-koden er blevet kopieret fra de mange sample-programmer i MAX32625 projekt-directories, som det kan ses i kodens kommentarer. Det bør give brugeren en forlomme, når han eller hun begynder at skrive den endelige applikationskode.
Byg nu projektet ved at klikke på hammersymbolet vist i figur 6. Hvis mere end ét projekt er åbent i Eclipse, så vil brugeren ved at svæve over hammersymbolet få at vide, hvilket projekt der er ved at blive bygget.
Den binære fil skal nu befinde sig i byg/build-directoryet i projekt-directoryet som vist i figur 7.
Det vil nu være en god idé at tilføje build-directoryet til Windows Explorer Quick Access-menuen. Det vil give mening, når man skal programmere PICO’en. Højreklik over build-directory og vælg Pin-to-Quick Access, hvorefter directoryet vil optræde på venstre side af Windows Explorer-menuen under Quick Access.
Uploading af en binær fil
Det er vigtigt at lægge mærke til, at programmeringskablet kun bruges til debug af target-PICO og til reprogrammering af de dele, hvis og hvor bootloaderen er blevet overskrevet. Upload af den binære fil kræver ikke brug af programmeringskablet, da det er en ganske enkel drag-and-drop proces.
Mens man holder tasten nede på PICO, plug den ind i USB-porten. PICO skal så dukke op som et nyt drev med label ”MAINTENANCE”, som vist i figur 8. Træk (drag) nu den binære fil til MAINTENANCE-drevet. Så snart filen er uploaded til PICO, skal MAINTENANCE-drevet forsvinde, PICO vil reboote, og programmet vil begynde at køre på PICO.
I de tidlige stadier af kodeudviklingen er det usandsynligt, at koden vil køre helt som forventet – hvis overhovedet. Hvis softwaren på target-PICO skal debugges (inklusive stepping gennem koden eller med halts ved breakpoints), skal den anden programmerings-PICO programmeres via interface-softwaren, så den kan konnekteres mellem pc’en og target-PICO. Denne programmerings-PICO udsender instruktioner til target-PICO’en for at starte og stoppe eksekvering på target, hvorved det bliver muligt for Eclipse at undersøge registrene.
For at konfigurere den anden programmerings-PICO, gå til binærfilen i DAPLink Interface Binary-directoryen i zip-filen. Kobl nu den anden programmerings-PICO fra USB-porten og hold så tasten nede på programmerings-PICO’en, mens den plugges tilbage i USB-porten. Som tidligere nævnt skal MAINTENANCE-drevet nu dukke op. Træk den binære fil (max32625_max32625pico_if_crc.bin) fra DAPLink Interface Binary-directoryen til MAINTENANCE-drevet. Det vil konfigurere programmerings-PICO’en med interface-softwaren og tillade single-stepping af target-koden med brug af Eclipse. MAINTENANCE-drevet skal nu igen forsvinde, programmerings-PICO’en reboote, og et drev kaldet DAPLINK vil dukke op. På nuværende tidspunkt er det værd at forbinde programmeringskablet til programmerings-PICO’en for at holde den adskilt fra target-PICO’en.
Sådan debugger man target-koden
Med programmeringskablet forbundet til 10-vejs konnektoren på programmerings-PICO’en, tryk nu pogo-konnektoren til den anden ende af de pads, der sidder på bagsiden af PICO, hvilket sikrer alignment af pins i de huller på PICO, som er vist i figur 9. Lad nu musen svæve over det debug-ikon i Eclipse, som er vist i figur 10, for at sikre, at det er det korrekte projekt, der bliver debugget. Navnet på det aktuelle projekt skulle nu dukke op.
Klik på debug-ikonet og behold pogo-konnektoren forbundet til PICO. Programmet vil nu kompilere, for så at pause i starten af koden. Ved at trykke på F8 på keyboardet starter man debug-processen.
Ved at dobbeltklikke over kodens linjenumre i Eclipse kan brugeren indsætte breakpoints. Brugeren kan nu debugge koden. Registre kan undersøges ved at vælge:
Window > Show View > Other.
Fra Eclipse-menuen kan man vælge de ønskede views ved at udbygge Debug-folderen. Så snart man har konstateret, at koden virker, kan man save sit projekt, så det vil kunne fungere som skabelon for fremtidige lignende projekter.
Sådan redder man en crashet PICO
PICO bliver leveret med en forinstalleret bootloader, der gør drag-and-drop programmering mulig. Når PICO’en er plugged i, og hvis hverken MAINTENANCE- eller DAPLINK-drevene dukker op, så er det muligt, at bootloaderen er blevet overskrevet. Man kan udføre en recovery af bootloaderen med brug af de følgende trin:
● Plug programmerings-PICO’en i og se, at DAPLINK-drevet bliver dannet.
● Plug den defekte PICO i.
● Tryk de fjederbelastede konnektorer i programmeringskablet mod de pads, der er på bagsiden af den defekte PICO for at sikre, at de respektive pins passer ind i hullerne på PICO’en.
● Navigér til Bootloader Binary-directoryet og træk bootloader-filen (max32625pico_bl.bin) hen til DAPLINK-drevet. Det er vigtigt at notere sig, at den binære kode bliver kopieret til det drev, som er dannet af programmerings-PICO’en og ikke af target-PICO. Progammerings-PICO’en bruges til at danne en sti for den binære fil til target-PICO via programmeringskablet.
● Man skal nu kunne se MAINTENANCE-drevet, når de reparerede PICO er plugget i, når man holder tasten på PICO’en nede.
● Kobl nu programmerings-PICO’en ud.
Sådan sletter man filer i PICO’en
Skulle det blive nødvendigt at slette (erase) det samlede indhold af PICO’en, skal man følge disse trin:
● Plug programmerings-PICO’en i en USB-port. Det vil danne et drev kaldet DAPLINK.
● Plug den PICO, som skal slettes, i en anden USB-port.
● Tryk de fjederbelastede konnektorer i programmeringskablet mod de pads, der er på bagsiden af den PICO, som skal slettes.
● Navigér til erase.act-filen i Erase File-directoryet i zip-filen.
● Progammerings-PICO’en bruges til at danne en sti for den binære fil til target-PICO via programmeringskablet.
● Det vil slette target-PICO’en.
Konklusion
Indholdet af denne og den foregående artikel skulle gerne være starten på et godt venskab med PICO. Det er en glimrende, prisbillig platform til at gøre brugeren i stand til at udvikle en ekstremt kraftig, men alligevel low-power Arm-mikrocontroller. Ovenstående er en komplet guide til gratis udviklingsværktøjer til programmering og debugging af PICO. Når først man har oplevet succes med ét projekt, så kan dét fungere som skabelon for fremtidig udvikling med et minimum af besvær. Og endelig kan man sige farvel til en 8-bit DIP-verden og træde ind i en verden af 32-bit mikrocontrollere med samtidig mulighed for prototyping med en overskuelig pakkeløsning.
Download software-filerne fra nedenstående link eller fra QR-koden: https://www.analog.com/media/en/software/software-configuration/eclipse-configuration.zip
Billedtekster:
Figur 1: Location af Boards-directoryet.
Figur 2: LED- og ringetrykkonfiguration.
Figur 3: Schematics over LED’er og trykknapper.
Figur 4: Tera Term-indstillinger.
Figur 5: Bootloader-initialisering.
Figur 6: Bygning af et projekt.
Figur 7: Location af den binære fil.
Figur 8: MAINTENANCE-drevet.
Figur 9: Forbindelse af programmeringsenhed til target.
Figur 10: Bygning af det endelige projekt.