Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Sistemi embedded real time, ukernel

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Sistemi embedded real time, ukernel

Messaggioda Foto Utentecencia » 21 ago 2012, 9:54

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
Avatar utente
Foto Utentecencia
8 1 5
New entry
New entry
 
Messaggi: 98
Iscritto il: 1 giu 2012, 22:10

2
voti

[2] Re: Sistemi embedded real time, ukernel

Messaggioda Foto Utentedimaios » 21 ago 2012, 10:40

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.
Ingegneria : alternativa intelligente alla droga.
Avatar utente
Foto Utentedimaios
30,2k 7 10 12
G.Master EY
G.Master EY
 
Messaggi: 3381
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes

0
voti

[3] Re: Sistemi embedded real time, ukernel

Messaggioda Foto Utentecencia » 21 ago 2012, 12:02

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.

:roll:
Avatar utente
Foto Utentecencia
8 1 5
New entry
New entry
 
Messaggi: 98
Iscritto il: 1 giu 2012, 22:10

1
voti

[4] Re: Sistemi embedded real time, ukernel

Messaggioda Foto Utentedimaios » 21 ago 2012, 15:12

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.
Avatar utente
Foto Utentedimaios
30,2k 7 10 12
G.Master EY
G.Master EY
 
Messaggi: 3381
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes

0
voti

[5] Re: Sistemi embedded real time, ukernel

Messaggioda Foto UtenteTardoFreak » 21 ago 2012, 15:19

Scusa la domanda Foto Utentecencia, ma hai una buona conoscenza di come funziona un sistema operativo RTOS?
"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.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[6] Re: Sistemi embedded real time, ukernel

Messaggioda Foto Utentecencia » 21 ago 2012, 21:37

TardoFreak ha scritto:Scusa la domanda Foto Utentecencia, 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....
Avatar utente
Foto Utentecencia
8 1 5
New entry
New entry
 
Messaggi: 98
Iscritto il: 1 giu 2012, 22:10

0
voti

[7] Re: Sistemi embedded real time, ukernel

Messaggioda Foto UtenteTardoFreak » 21 ago 2012, 21:48

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.
"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.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[8] Re: Sistemi embedded real time, ukernel

Messaggioda Foto Utentecencia » 21 ago 2012, 22:34

e per PORTING cosa intendi....?
:roll:
Avatar utente
Foto Utentecencia
8 1 5
New entry
New entry
 
Messaggi: 98
Iscritto il: 1 giu 2012, 22:10

1
voti

[9] Re: Sistemi embedded real time, ukernel

Messaggioda Foto UtenteTardoFreak » 21 ago 2012, 23:54

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).
"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.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[10] Re: Sistemi embedded real time, ukernel

Messaggioda Foto Utentecencia » 22 ago 2012, 10:32

molto bene.... adesso ne so un po' di più...
dal punto di vista più specifico devo smanettarci, altrimenti si rischia di parlare di aria fritta...
:ok:
Avatar utente
Foto Utentecencia
8 1 5
New entry
New entry
 
Messaggi: 98
Iscritto il: 1 giu 2012, 22:10

Prossimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti