Ciao è da un po' che mi sono incuriosito sui sistemi embedded real time e mi chiedevo, quali sono le modalità operative per poterne fare uso di essi.
Io in genere programmo PIC con MPLAB e ho a che fare con dsPIC.
c'è qualcuno che mi può illuminare su queste cose, su come operativamente si usano....
Grazie
Sistemi embedded real time, ukernel
Moderatore:
Paolino
14 messaggi
• Pagina 1 di 2 • 1, 2
2
voti
Per quanto riguarda i sistemi realtime su microcontrollore ho utilizzato freeRTOS.
Sono riuscito a farlo girare su STM32 e su PIC32. Non ho esperienza sul dsPic ma diversi thread sul web indicano la possibilità di installare il sistema operativo in oggetto senza problemi.
Trovi tutte le informazioni per il porting su dsPic a questo URL.
Per quanto riguarda l'utilizzo dipende molto da cosa devi fare.
Oggettivamente per lo scheduling dei task un sistema operativo facilita le cose.
Ovviamente devi pagare il costo di studiarti le primitive del sistema operativo e relativa parametrizzazione ma a mio avviso vale la pena dedicarci del tempo in quanto la soluzione è riciclabile su moltissime piattaforme.
Un punto da non sottovalutare è la pulizia del codice. La programmazione in ambiente RT multitask induce una certa mentalità che torna utile anche in altri contesti.
Sono riuscito a farlo girare su STM32 e su PIC32. Non ho esperienza sul dsPic ma diversi thread sul web indicano la possibilità di installare il sistema operativo in oggetto senza problemi.
Trovi tutte le informazioni per il porting su dsPic a questo URL.
Per quanto riguarda l'utilizzo dipende molto da cosa devi fare.
Oggettivamente per lo scheduling dei task un sistema operativo facilita le cose.
Ovviamente devi pagare il costo di studiarti le primitive del sistema operativo e relativa parametrizzazione ma a mio avviso vale la pena dedicarci del tempo in quanto la soluzione è riciclabile su moltissime piattaforme.
Un punto da non sottovalutare è la pulizia del codice. La programmazione in ambiente RT multitask induce una certa mentalità che torna utile anche in altri contesti.
Ingegneria : alternativa intelligente alla droga.
-

dimaios
30,2k 7 10 12 - G.Master EY

- Messaggi: 3381
- Iscritto il: 24 ago 2010, 14:12
- Località: Behind the scenes
0
voti
dimaios ha scritto:Per quanto riguarda l'utilizzo dipende molto da cosa devi fare.
Oggettivamente per lo scheduling dei task un sistema operativo facilita le cose.
Ovviamente devi pagare il costo di studiarti le primitive del sistema operativo e relativa parametrizzazione ma a mio avviso vale la pena dedicarci del tempo in quanto la soluzione è riciclabile su moltissime piattaforme.
Quello che mi interesserebbe veramente è come cominciare a vedere alcune cose:
-che relazione c'è con MPLAB...?
-devo scaricarmi qualcosa e installarlo nella memoria del Target con l ICD2?
-so che devo creare il uKernel: esso fa parte del sistema operativo o devo creare codice C?
Penso che si debba utilizzare lo stack del Target, gli interrupt e il Timer per creare il clock. ma una visione più dettagliata mi manca.
1
voti
cencia ha scritto:-che relazione c'è con MPLAB...?
In pratica nessuna. Puoi utilizzare MPLAB per compilare come qualsiasi altro sistema di sviluppo o toolchain.
Ovviamente ti consiglio di seguire le istruzioni che troverai nel sito per compilare tramite l'IDE nativo della Microchip per evitare problemi accessori durante l'installazione della toolchain.
cencia ha scritto:-devo scaricarmi qualcosa e installarlo nella memoria del Target con l ICD2?
Il sistema operativo e' composto da pochissimi files sorgente ed un file di configurazione che deve essere compilato adeguatamente a seconda della piattaforma target.
Se non usi configurazioni particolarmente "esoteriche" trovi i files di configurazione gia' pronti.
cencia ha scritto:so che devo creare il uKernel: esso fa parte del sistema operativo o devo creare codice C?
Non devi scrivere codice C. Devi ricompilare i sorgenti dopo aver compilato adeguatamente il file di configurazione con i parametri relativi al target.
Lo scopo del Kernel e' quello di fornire una base standard e solida sulla quale creare l'applicazione quindi non dovrebbe essere integrato con ulteriore codice C a meno di esigenze particolari.
Le librerie sono un problema diverso ( es. gestione dello stack TCP/IP ecc. ).
Nel Web e nel sito di freeRTOS trovi tutte le istruzioni per il tuo microcontrollore.
Per iniziare comunque ti consiglio di acquistare una evaluation board dove il sistema operativo RT sia gia' stato configurato e compilato cosi' fai pratica prima di toccare in modo piu' o meno appropriato i parametri di compilazione.
Ingegneria : alternativa intelligente alla droga.
-

dimaios
30,2k 7 10 12 - G.Master EY

- Messaggi: 3381
- Iscritto il: 24 ago 2010, 14:12
- Località: Behind the scenes
0
voti
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
TardoFreak ha scritto:Scusa la domandacencia, ma hai una buona conoscenza di come funziona un sistema operativo RTOS?
secondo te starei qui a fare le domande se avessi una buona conoscenza?
so poco, e quello che non so lo voglio imparare...
so che per i sistemi embedded serve per trasformare il microcontrollore come un vero e proprio microcomputer, per poter implemetare il multitasking che è quasi sempre preemptive. Il Kernel che monitora e fa coabitare i differenti task, si posizione nella Memoria Ram del micro assieme Context Switching (il contesto del task che si è appena eseguito).
A me interessano i passi che devo fare una volta in mano il mio target e con Mplab aperto: in tools vedo che c'è un RTOS viewer, ma non so cosa serva.
@dimaios : quando parli di sistema operativo da installare, intendi scaricarti FreeRTOS e installalarlo? e poi come fai a caricarlo sul target in questione...? credo che sia semplice da fare ma intanto mi sto incuriosendo....
0
voti
Non lo devi caricare nel target ma, diciamo, includere nel programma. Sono diversi moduli che vanno compilati (previa configurazione) e poi linkati al tuo programma.
Alla fine ti trovi un solo file da caricare nel target.
Alla fine ti trovi un solo file da caricare nel target.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
1
voti
E' un termine che non uso mai, comunque è l' operazione (o la sequenza di operazioni) da fare per adattare un sorgente ad un compilatore e/o ad un determinato microcontrollore.
Ad esempio, se scrivi una libreria di funzioni o un qualsiasi modulo in c per, ad esempio, un PIC32 compilabile con MPLAB, e poi vuoi trasferirlo su un ARM e compilarlo con il compilatore Keil dovrai modificare alcune cose, inserire (o togliere) alcune direttive, defines e cose varie.
Questo lavoro si chiama "porting", io lo chiamo "adattamento".
Quindi se tu (o i tizi che hanno scritto il sistema operativo) sai già che quello che scrivi dovrai usarlo con micro diversi, avrai l' accortezza di metterci dentro delle compilazioni condizionate (#ifdef, #if e compagnia cantante) che, in base ad alcuni simboli definiti o meno faranno in modo da poterlo utilizzare con i vari micro.
A volte è utile usare un file di configurazione per definire opportunamente questi simboli.
Questo è quello che si fa per configurare alcuni sistemi operativi che si possono adattare a diversi micro e compilatori.
Non per tutti, sia ben chiaro. Alcuni sistemi operativi vanno bene solo con una certa famiglia di micro, alcuni con poche, alcuni con molte. Insomma dipende .... di RTOS ce ne sono parecchi che vanno da quelli gratis a quelli che ti costano quanto un' automobile di media cilindrata.
Ad esempio mi è capitato di utilizzare un sistema operativo (uno Stack ZigBee completo di sistema operativo cooperativo) della IAR che funziona esclusivamente con il compilatore ARM della IAR e sui SAM3 della Atmel. In effetti la Atmel lo da gratis perché sia utilizzato con i suoi micro. Probabilmente è stato sviluppato dalla IAR che ha fatto in modo che funzionasse solo con il suo compilatore (e quindi per vendere il suo compilatore).
Ad esempio, se scrivi una libreria di funzioni o un qualsiasi modulo in c per, ad esempio, un PIC32 compilabile con MPLAB, e poi vuoi trasferirlo su un ARM e compilarlo con il compilatore Keil dovrai modificare alcune cose, inserire (o togliere) alcune direttive, defines e cose varie.
Questo lavoro si chiama "porting", io lo chiamo "adattamento".
Quindi se tu (o i tizi che hanno scritto il sistema operativo) sai già che quello che scrivi dovrai usarlo con micro diversi, avrai l' accortezza di metterci dentro delle compilazioni condizionate (#ifdef, #if e compagnia cantante) che, in base ad alcuni simboli definiti o meno faranno in modo da poterlo utilizzare con i vari micro.
A volte è utile usare un file di configurazione per definire opportunamente questi simboli.
Questo è quello che si fa per configurare alcuni sistemi operativi che si possono adattare a diversi micro e compilatori.
Non per tutti, sia ben chiaro. Alcuni sistemi operativi vanno bene solo con una certa famiglia di micro, alcuni con poche, alcuni con molte. Insomma dipende .... di RTOS ce ne sono parecchi che vanno da quelli gratis a quelli che ti costano quanto un' automobile di media cilindrata.
Ad esempio mi è capitato di utilizzare un sistema operativo (uno Stack ZigBee completo di sistema operativo cooperativo) della IAR che funziona esclusivamente con il compilatore ARM della IAR e sui SAM3 della Atmel. In effetti la Atmel lo da gratis perché sia utilizzato con i suoi micro. Probabilmente è stato sviluppato dalla IAR che ha fatto in modo che funzionasse solo con il suo compilatore (e quindi per vendere il suo compilatore).
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
14 messaggi
• Pagina 1 di 2 • 1, 2
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 2 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)

