Zephyr for STM32
Jeg liker virkelig ikke toolchainen som er satt opp for STM32. Hopping frem og tilbake mellom forskjellige programmer for å rekonfigurere er ikke akkurat effektivt. At de enda heller ikke har støtte for flere hardware oppsett til samme kode kompliserer utvikling for meg, da jeg koder på devkort før jeg produserer hardwaren.
Så da blir det et hopp til Zephyr med et NUCLEO-L476RG kort, og vi skal flashe og debugge i VSCode om noen få tastetrykk!
nRF Connect for VS Code
Det er ikke sikkert det er helt opplagt, men nRF har virkelig gjort en god jobb med sin VS Code extension. Den kan nemlig brukes til andre chipper enn deres egne, og installeringen er relativt smertefri.
Installer extensionen i VS Code som enhver annen extension. Når den dukker opp i baren, klikker du på den og får tilbud om å installere toolchain. Det gjør vi, og vi velger den siste versjonen tilgjengelig. Dette tar griselang tid, så ta deg gjerne en god karsk mens du venter.
Som avslutting får du kanskje feilmeldingen under og da må du kanskje installere nRF Command Line Tools og SEGGER J-Link Software and Documentation Pack på egenhånd.
❗️ nrfjprog couldn’t be executed. Please ensure that SEGGER J-Link Software and Documentation Pack and nRF Command Line Tools are both installed.
Åpne action menyen og kjør ’nRF Connect: Create Shell Terminal’. Naviger deg til der du vil lage den nye workspacen og skriv west init myworkspace
og følg instruksene du får.
Bygge Hello World
Nå lager jeg meg en mappe ’l476’ for testen min, og går inn i mappa og skriver kommandoen xcopy ..\zephyr\samples\hello_world hello_world /e /h /c /i
. Gå inn i den nye mappen og skriv kommandoen west build -p always -b nucleo_l476rg .
. Du skal nå ende med en kompliert fil som du kan flashe på kortet ditt.
Flashing
Jeg liker J-Link, så her er en liten omvei til mål - vi skal reflashe ST Link til J-Link. Se her: https://www.segger.com/downloads/jlink/#STLink_Reflash
Når du har fått oppgradert kortet ditt så bruker vi kommandoen west flash
. Debug og serial terminal gjennom J-Link fungerer også utmerket.
Man kan også sette opp openocd, men det tar vi en annen gang for nå skal jeg kode litt.