Du har sikkert hørt at rust er et systemprogrammeringsspråk som har ganske følgende voksende. Det tilpasser seg å være rask som c, men har funksjoner som garantert minne og trådsikkerhet, generikk, og det forhindrer segmenteringsfeil. Høres ut som bare tingen for et innebygd system, ikke sant? [Jorge Aparicio] ble frustrert fordi hans CPU av valg, en STM32 arm Cortex-M hadde ikke innfødt støtte til rust.

Tilsynelatende kan du enkelt binde C-funksjoner i et rustprogram, men det var ikke det han var etter. Så han satte seg for å bygge rene rustprogrammer som kunne få tilgang til enhetens maskinvare, og han dokumenterte innsatsen.

Ikke bare viser innlegget deg verktøyene du trenger og programvareversjonene, men bruker Openocd, [Jorge], klarte selv å gjøre noe feilsøking. Teknikken ser ut til å ganske typisk anvendes også, da han sier at han har gjort det samme trikset på seks forskjellige kontroller fra tre forskjellige leverandører uten problem. Du må konfigurere prosjektet ved å endre noen verdier i en mal.

Selv om det ikke er en rustopplæring, følger du med [Jorge’s] -kode og hans forklaringer vil gi deg en ganske god ide om hva rust ser ut. Han viser også et pent verktøy, GDB-dashbord. For å bygge API til armens spesielle minneområder, bruker [Jorge] et verktøy som heter SVD2Rust for å behandle leverandørens SvD-filer. Disse brukes vanligvis til JTAG-programmering og testing, så vi trodde det var en ny måte å automatisk bygge støtte til prosessoren.

Mange språk som tilbyr sikkerhetsfunksjoner, har en tendens til å kompilere fettkode. [Jorge] viser et blinkende LED-eksempel og demonterer det, og det ser ganske kompakt om 127 byte. Han abstrahered deretter bort Timer Registers og koden er praktisk talt nøyaktig samme størrelse når den er kompilert.

Vi dekket rust kort en stund tilbake. Vi har også sett rust på noe wifi-utstyr mer nylig.