On Wednesday 26 September 2007 10:12:31 Dragos Popescu wrote:
> Pentru prelevarea eşantioanelor am setat un timer aşa cum se vede în
> progrămelul de mai jos (scuze de lungimea postului), numai că
> rezultatul e dezastruos: dacă măsor o tensiune costantă, rezultatul
> întors e corect cu o precizie mai mult decât mulţumitoare, dacă măsor o
> tensiune alternativă, am pus-o! Şi asta din cauza timer-ului care numai
> la 625us nu bate şi când aplic prelucrările numerice asupra
> eşantioanelor, iese o poezie!
> Nu se pune problema vitezei de eşantionare a plăcilor de achiziţie, alea
> merg lejer la 200k măsurători/sec.
> Cum aş putea rezolva cât de cât problema asta cu timerul?
> Am încercat "nice" da' linuxul de la sistemul ăsta n-a auzit de aşa
> ceva.

Nu cred ca e vorba de nice. nice ar ajuta daca ar fi mai multe aplicatii pe 
sistem care concureaza pt CPU si atunci ai prioritiza unele fata de altele, 
dar nu e cazul tau. Problema ta cred eu vine pur si simplu de la 
granularitatea timer-ului maxima pe Linux (astea cu HZ mai ales). Daca vrei 
granularitate maxima cred ca iti trebuie ceva tickless si un kernel foarte 
recent (desi pt ARM nu cred ca are inca suport de tickless, trebuie sa 
verifici). Pe 2.4.21 in primul rand ca nici kernelul nu e preemptibil macar, 
orice syscall se executa pana se blocheaza in I/O sau alta coada de asteptare 
si nu are posibilitatea sa fie preemptat mai devreme pt a face schedule pe 
alta aplicatie.

Deci pe langa sugestia de a utiliza un kernel foarte recent cu tickless (sau 
macar un HZ mai mare de 1000 or so) si suport de softRT cred ca cel mai bine 
ar fi un linux specializat pt RT (exista mai multe proiecte) chiar daca nu 
sunt sigur ca suporta macar unul din ele hard RT. Daca chiar ai nevoie de 
hard RT ai mai putea incerca si cu QNX sa vezi macar daca asta e problema.

-- 
Mihai RUSU                                      Email: [EMAIL PROTECTED]
                        "Linux is obsolete" -- AST

_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui