[bglug] RTAI partendo da zero, o quasi

moreno 1 moreno@mediacom.it
Gio 31 Mar 2005 18:37:59 CEST


Ciao

Archimede Pitagorico ha scritto:

> Bene, l'hardware non è niente di particolare, si tratta di un PIP7, un 
> pc  industriale
> che monta un PIII (http://www.mpl.ch/t2450.html)
> La distro sarà una debian o forse una slackware, con kernel vanilla 
> (non  ho ancora deciso la versione, penso cmq 2.6.7) e patch RTAI 3.1  
> (www.rtai.org).
> Ho fatto un po di test in questi giorni e non ho avuto particolari  
> problemi ad installare e patchare il kernel RTAI.
> Il fatto è questo:
> Non so cosa farmene di RTAI :-(
>
> Ovvero, adesso che ce l'ho, cosa (e come) ci posso fare?
>
> La mia esigenza è di scrivere un programma che:
> 1) acquisisca dati dalla seriale dove è collegato una periferica di  
> acquisizione A/D con 6 convertitori a 24 bit lavoranti a 100 Hz 
> (quindi  6*24*100 = 14400 bit/s = 1800 byte/s).
> 2) Abbia delle temporizzazioni molto precise per generare dei 
> timestamp  con cui marchiare i dati acquisiti.
> 3) Tramite Memory Mapped File condivida i dati che ha acquisito con 
> un  altro thread che si occupa una volta al secondo di pacchettizzarli 
> secondo  un ben definito formato ed inviarli ad un server via TCP/IP.
> 4) Sempre tramite MMF condivida i dati con un applicazione grafica 
> che  visualizza i dati acquisiti in tempo reale tipo oscilloscopio.
>
> Il programma saprei tranqullamente scriverlo in C senza usare RTAI, 
> ma  così mi è stato richiesto. E' davvero necessario RTAI per il punto 
> uno e  due ?
> Che cosa mi da RTAI che altrimenti non riuscirei ad ottenere tramite 
> la  normale programmazione C ?
> C'è in giro un tutorial (ita/eng) che spiega cosa si può fare con RTAI 
> e  quando è necessario usalo e perchè?
>
> Grazie a chiunque possa togliermi anche uno solo di questi dubbi.
>
> X Marco, avevo visto il vs sito (http://www.klinux.org) durante le  
> ricerche su Real-Time linux.
> Mi sono fermato quando ho visto che la distro era a pagamento (senza  
> rancore, è giusto che il lavoro di un azienda sia pagato). Volevo  
> chiederti che differenza c'è tra klinux ed un kernel vanilla con 
> patch  RTAI.
>
> Ciao,
> Diego Settimi.
>
>
>> Affrontare RTAI potrebbe non essere così semplice.
>> Diciamo che su un'architettura PC con una distro standard, la strada è
>> semplice.
>> Se utilizzi processori strani tipo RISC (ARM, PPC, etc) è un po' più
>> problematico.
>> Comunque, se vuoi indica le caratteristiche del tuo sistema e cosa deve
>> fare, in particolare se ti aspetti di avere anche la comunicazione  
>> TCP/IP in
>> RT.
>
>
>------------------------------------------------------------------------
>
> 
>  
>
Bah, usare un RealTime Executive per fare questo mestiere mi sembra la 
cosa più inutile di questo mondo a meno che tu debba fare timestamp da 
pochi nanosecondi..
Facevo cose molto più complesse in Dos 10 anni fa, secondo me questo è, 
ora come ora, un lavoro da PLC.
L'RTAI ti serve veramente solo se la macchina in questione ha altri 
compiti che appesantiscono in maniera significativa il kernel.

La cosa principale che fà RTAI è quella di intercettare gli interrupt 
periodici dei timer e di metterli a disposizione di moduli (quelli che 
scrivi tu) che girano in kernel space e che quindi hanno una priorità 
persino superiore a quella del kernel.
L'altra cosa importante è l'implementazione di sofisticate procedure di 
comunicazione fra i moduli in kernel space e quelli in user space.
Nel pacchetto di RTAI ci sono dei programmi d'esempio molto carini che 
possono chiarirti molto le idee.

Ciao Ciao Moreno




Maggiori informazioni sulla lista bglug