Preparazione del progetto
Scarica BeRTOS e lancia il Wizard. Dal menu cfg seleziona debug per includere automaticamente il supporto per il debug di BeRTOS. Seleziona la porta di output corretta per la CPU e crea il progetto. Chiamiamo il progetto hello_world.
Il Wizard crea la directory hello_world/, in cui si trovano:
Coding
Apri main.c e inserisci:
#include "buildrev.h"
#include <cfg/debug.h>
int main(void){IRQ_ENABLE;
kdbg_init();kprintf("Program build: %dn", VERS_BUILD);kputs("Hello world!n");return ;}
Quindi compila il programma; ci saranno dei warning, ma per il momento possiamo ignorarli. Metti il firmware sulla scheda e resetta. Sulla seriale di debug ci saranno i messaggi:
*** BeRTOS DBG START ***Program build: 17Hello world!
Congratulazioni! Hai appena creato la tua prima applicazione con BeRTOS!
Tutorial linea per linea #include <cfg/debug.h>
La prima riga include i prototipi di funzione. Dal momento che spesso viene inclusa in altri file, si può omettere nei progetti più grandi.
IRQ_ENABLE;
Questa riga abilita gli IRQ sulla CPU. Non ne avremo bisogno in questo esempio, ma serve per quasi tutti gli altri moduli di BeRTOS, quindi è una buona abitudine includerlo.
kdbg_init();
Questa linea inizializza il sottosistema di debug, aprendo la seriale di debug. I parametri di configurazione per la porta sono nel file hello_world/cfg/cfg_debug.h.
kprintf("Program build: %dn", VERS_BUILD);kputs("Hello world!n");
Scrivono una stringa di debug sull’output. È possibile usare una funzione simile a printf per formattare l’output. Tieni presente, però, che printf introduce un alto delay, quindi usala con parsimonia.
Per ridurre l’occupazione di memoria e uso di CPU, BeRTOS implementa vari tipi di formattazione con printf. È possibile selezionarli modificando le opzioni in hello_world/cfg/cfg_formatwr.h. Ricordi i warning che sono usciti durante la prima compilazione? Sono dovuti all’uso della formattazione completa su una CPU con poca potenza. Per evitare questi warning puoi modificare le opzioni di formattazione in PRINTF_NOFLOAT.
Flash dell’immagine
I file compilati sono messi nella directory images/. Ci sono molti formati, per esempio .elf, .s19, .hex oppure .bin. L’ultima versione di BeRTOS ha un’infrastruttura di flash e debug integrata nei makefile per semplificare queste operazioni ripetitive.
Le operazioni da fare per flash e debug variano enormemente da CPU a CPU, quindi devi scrivere uno script che faccia il flash del programma sulla tua CPU. Per esempio, per AVR basta lanciare Avrdude oppure Avarice con i parametri corretti per la tua CPU. Lo script potrà usare le seguenti variabili di ambiente, che vengono definite direttamente dal makefile:
Le variabili PROGRAMMER_TYPE e PROGRAMMER_PORT sono definite nel makefile del progetto (per esempio hello_world.mk). Una volta creati gli script, basta lanciare uno dei seguenti comandi per flashare o debuggare un programma:
make flash_hello_world# oppuremake debug_hello_world
Questo è tutto. Buon divertimento con BeRTOS!
Tags: bertos, embedded driver, embedded rtos, free rtos, open source rtos, programmare real time, real time rtos, sdk embedded, sistema embedded, sistema operativo embedded, sistema operativo real time, sistema real time, sistemi embedded, tutorial embedded
signore giacche Barbournsignore giacche Barbourn
Quanto è importante misurare le performance?
Cos'è l'EDI? Spieghiamo a cosa serve la tecnologia di scambio…
Your email address will not be published.
Δ