Läsa port snabbt under Linux?

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 8413
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Läsa port snabbt under Linux?

Inlägg av AndersG »

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?
Användarvisningsbild
ojz0r
Inlägg: 244
Blev medlem: 14 september 2007, 19:38:04
Ort: Växjö

Re: Läsa port snabbt under Linux?

Inlägg av ojz0r »

Gäller den begränsningen även med en RT patchad kärna?
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 8413
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: Läsa port snabbt under Linux?

Inlägg av AndersG »

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.
Användarvisningsbild
Lennart Aspenryd
Tidigare Lasp
Inlägg: 12607
Blev medlem: 1 juli 2011, 19:09:09
Ort: Helsingborg

Re: Läsa port snabbt under Linux?

Inlägg av Lennart Aspenryd »

Det finns ju RTOs Men om du kikar på det som Micke_71 testar med så kan det vara en väg att gå!
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 8413
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: Läsa port snabbt under Linux?

Inlägg av AndersG »

Men om du kikar på det som Micke_71 testar med
Länk?
Användarvisningsbild
Lennart Aspenryd
Tidigare Lasp
Inlägg: 12607
Blev medlem: 1 juli 2011, 19:09:09
Ort: Helsingborg

Re: Läsa port snabbt under Linux?

Inlägg av Lennart Aspenryd »

Micke_71
Inlägg: 947
Blev medlem: 18 september 2004, 22:47:23

Re: Läsa port snabbt under Linux?

Inlägg av Micke_71 »

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.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 8413
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: Läsa port snabbt under Linux?

Inlägg av AndersG »

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
Micke_71
Inlägg: 947
Blev medlem: 18 september 2004, 22:47:23

Re: Läsa port snabbt under Linux?

Inlägg av Micke_71 »

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.
Formax51
Inlägg: 75
Blev medlem: 30 april 2013, 18:56:19
Ort: Umeå

Re: Läsa port snabbt under Linux?

Inlägg av Formax51 »

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/
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 8413
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: Läsa port snabbt under Linux?

Inlägg av AndersG »

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
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45175
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Läsa port snabbt under Linux?

Inlägg av TomasL »

BeagleBone stöder PRU, och då bör du kunna få upp farten.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 8413
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: Läsa port snabbt under Linux?

Inlägg av AndersG »

Intressant! Men då måste man ha en beagle :) En black för 50€?
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45175
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Läsa port snabbt under Linux?

Inlägg av TomasL »

Varför inte.
babbage
Inlägg: 635
Blev medlem: 10 november 2004, 11:33:17
Ort: Sthlm

Re: Läsa port snabbt under Linux?

Inlägg av babbage »

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.
Skriv svar