Läsa port snabbt under Linux?
Läsa port snabbt under Linux?
Jag skulle behöva kunna logga 64 eller 128k data hyfsat snabbt och min LWLA1016 analysator klarar max att logga ca 100ms. Testade med ett linuxprogram som läser parallellporten, men uppenbarligen finns det en begränsning i Linux som gör att en portläsning tar 1ms. Detta oberoende av hur snabb datorn är. Testae både inb() och att läsa parport med IOCL.
Finns det något sätt runt detta, eller har någon ett tips på ett rimligt prissatt kort som kunde läsa snabbare vie en egen driver?
Finns det något sätt runt detta, eller har någon ett tips på ett rimligt prissatt kort som kunde läsa snabbare vie en egen driver?
Re: Läsa port snabbt under Linux?
OK. Där lärde jag mig ngt nytt. Du menar Realtime Linux? Vet ej, måste testa. Jag har testat med OpenSuse 11.x på 32 bitar och 15.3 på 64 och ser samma tider, ungefär.
- Lennart Aspenryd
- Tidigare Lasp
- Inlägg: 12607
- Blev medlem: 1 juli 2011, 19:09:09
- Ort: Helsingborg
Re: Läsa port snabbt under Linux?
Det finns ju RTOs Men om du kikar på det som Micke_71 testar med så kan det vara en väg att gå!
- Lennart Aspenryd
- Tidigare Lasp
- Inlägg: 12607
- Blev medlem: 1 juli 2011, 19:09:09
- Ort: Helsingborg
Re: Läsa port snabbt under Linux?
Det där jag leker med är en raspberry pi pico med RP2040.
Det finns i windows vissa api kommandon eller vad det nu heter. Jag använde det med LPT och realtidsprogrammering i windows XP då den vanliga prioriteten gav på tok för mycket jitter.
Sen kan vi diskutera hur äkta realtid det egentligen är..... Denna funktion kallas bara in i själva rutinen som läser, datorn fryser totalt på mus, skärm, tangentbord osv. Effekten blir att rycka kontakten för att starta om ifall man missar att ge tillbaka kontrollen till windows igen. Jättekul när man inte sparat.
REALTIME_PRIORITY_CLASS
Det var många år sedan nu men en googling säger att man kallar på det med>
SetPriorityClass(hProcess,REALTIME_PRIORITY_CLASS);
<Min tidskritiska kod>
SetPriorityClass(hProcess,NORMAL_PRIORITY_CLASS);
Det är något helt annat än att ange detta i processer i aktivitetshanteraren
Detta funkade på XP. Hur det är i Linux eller vilken motsvarighet som finns vet jag noll och ingenting om.
Det finns i windows vissa api kommandon eller vad det nu heter. Jag använde det med LPT och realtidsprogrammering i windows XP då den vanliga prioriteten gav på tok för mycket jitter.
Sen kan vi diskutera hur äkta realtid det egentligen är..... Denna funktion kallas bara in i själva rutinen som läser, datorn fryser totalt på mus, skärm, tangentbord osv. Effekten blir att rycka kontakten för att starta om ifall man missar att ge tillbaka kontrollen till windows igen. Jättekul när man inte sparat.
REALTIME_PRIORITY_CLASS
Det var många år sedan nu men en googling säger att man kallar på det med>
SetPriorityClass(hProcess,REALTIME_PRIORITY_CLASS);
<Min tidskritiska kod>
SetPriorityClass(hProcess,NORMAL_PRIORITY_CLASS);
Det är något helt annat än att ange detta i processer i aktivitetshanteraren
Detta funkade på XP. Hur det är i Linux eller vilken motsvarighet som finns vet jag noll och ingenting om.
Re: Läsa port snabbt under Linux?
Testade med en RT kernel - Samma sak:
Linux localhost 5.2.21-rt15-150300.59.49-default #1 SMP PREEMPT RT Tue Feb 22 16:47:32 EET 2022 x86_64 x86_64 x86_64 GNU/Linux
Linux localhost 5.2.21-rt15-150300.59.49-default #1 SMP PREEMPT RT Tue Feb 22 16:47:32 EET 2022 x86_64 x86_64 x86_64 GNU/Linux
Re: Läsa port snabbt under Linux?
Bekymret är väl multitasking.
Processerna har normalt inte exklusiv rätt till kapaciteten. Det är väl därför man buffrar lite här o där. Man skickar en bunt data till buffern och sedan gör man annat under tiden.
Processerna har normalt inte exklusiv rätt till kapaciteten. Det är väl därför man buffrar lite här o där. Man skickar en bunt data till buffern och sedan gör man annat under tiden.
Re: Läsa port snabbt under Linux?
Ta en titt på denna USB logik analysator... fungerar riktigt bra.. och nu erbjuder dom även ett SDK för egen implementation i mjukvara..kanske kan vara nått
om du vill ner i tid... under 1ms i PC blir nog jobbigt utan något extra.. om man inte vill missa data
https://www.saleae.com/
om du vill ner i tid... under 1ms i PC blir nog jobbigt utan något extra.. om man inte vill missa data
https://www.saleae.com/
Re: Läsa port snabbt under Linux?
Jag har en liknande, LWLA1016. Att den erbjuder ett SDK är ju kul, men då skall man ha tid och ork att implementera en dekoder. Till Sigrok finns det en färdig GPIB dekoder. Problemet är sedan att kunna lagra tillräckligt mycket. Få analysatorer, för rimliga pengar, har obegränsat minnesdjup.
Jag känner en som har en Saleae och han har skickat mig filer. De går att exportera som CSV och sedan kan man bygga ett separat verktyg som dekodar. Saleaes mjukvara är annars mycket bättre än Sigrok's PulseView, men å andra sidan har Sigrok ett bättre stöd för olika typer av hårdvara och protokoll.
Se: https://discuss.saleae.com/t/exporting/1330
Jag känner en som har en Saleae och han har skickat mig filer. De går att exportera som CSV och sedan kan man bygga ett separat verktyg som dekodar. Saleaes mjukvara är annars mycket bättre än Sigrok's PulseView, men å andra sidan har Sigrok ett bättre stöd för olika typer av hårdvara och protokoll.
Se: https://discuss.saleae.com/t/exporting/1330
Re: Läsa port snabbt under Linux?
Intressant! Men då måste man ha en beagle En black för 50€?
Re: Läsa port snabbt under Linux?
Kan ha oanvänd bbb liggandes hemma om du vill ha en sådan. Kan kolla när jag kommer hem ikväll i sådana fall.