Ktorys wczesny chyba nawet na 360.
Ale w sumie to Ty chcesz prosty program wygenerowany, nie TC.
Mozna tez przygotowac CD startujacego i kopiujacego do ramdysku ..
J.
Ktorys wczesny chyba nawet na 360.
Ale w sumie to Ty chcesz prosty program wygenerowany, nie TC.
Mozna tez przygotowac CD startujacego i kopiujacego do ramdysku ..
J.
Ok. Coś tam wymyślę. Jestem bardzo ciekaw, ale musze znaleźc troche czasu i nerwów zeby zajmowac się znowu "systemami operacyjnymi" CP/M yyy, znaczy ... MSDOS.
Nie musi. Program napisz i skompiluj w DOSemu, a na dyskietkę wrzuć tylko gotowy programik + jądro FreeDOS'a z interpreterem komend. :)
Pozdrawiam, Mateusz Viste
O nie nie, być moze będe chciał się pobawić :) W każdym razie nie ma sensu dyskutować, zrobie sobie taką możliwość i sprawdzę.
Z tego co pamiętam, to konstrukcja jest taka, że nawet bezpośrednie pisanie do portu powoduje wygenerowanie sekwencji z zachowaniem czasów.
To, co opisywałem to port IBM-XT z początku lat 80tych ub. stulecia. Myślisz, że jest gorzej?
Waldek
Niemal na pewno nie ma juz tych driverow. Jest jakis chip, w technologii cmos ..
J.
Nie w podstawowym porcie - tam wszystko programowo.
A spowalniania sie procesor na samym rozkazie out.
J.
Na wyrzucanej niedawno 3-letniej płycie wszystkie druty sygnałowe LPT wchodziły do dużego chipa. Opis w google nieznany. IMHO optymalizuja co się da, przecież RS232 już dawno "zoptymalizowano" do +5/-5V. Czemu z LPT ma byc inaczej? Robi się, zeby dzialalo na aby aby i już.
Oj dlaczego od razu MS do tego mieszać! :)
Dyskusja mnie na tyle zaciekawiła, że sam przeprowadziłem test. W QuickBASIC'u napisałem następujący programik:
DIM x AS LONG DIM StartTime AS DOUBLE DIM EndTime AS DOUBLE StartTime = TIMER FOR x = 1 TO 2000000 OUT &H378, 1 OUT &H378, 0 NEXT x EndTime = TIMER PRINT "Przeprowadzono 2'000'000 cykli w czasie: "; EndTime - StartTime; "s" PRINT "Szybkosc: "; 2000000 / (EndTime - StartTime) / 1000; "KHz"
Wynik jaki otrzymałem to 332KHz. Procesor Pentium III. Wynik jest niezależny od tego, czy załaduję EMM386 czy nie (spodziewałem się spowolnienia z EMM386, a tu nic...). :-)
Pozdrawiam, Mateusz Viste
Na mojej starej plycie multiIO z AT byl driver LS573.
Tutaj masz dr dosa i kupe narzędzi, wypal płytke i testuj :)
J.F. pisze:
No wiesz, producenci płyt głównych od dawna wieszczą koniec LPT. I w gruncie rzeczy mają rację - drukarek z takim portem się już nie robi, a i programatorek AVRów na USB można zrobić samemu bardzo tanio (z USB realizowanym programowo na ATtiny). Albo kupić nieco lepszy z FT232R i AFAIR Atmegą 8.
On Thu, 13 Aug 2009 16:11:19 +0200, Sebastian Biały napisał:
przestaw sheduler na real-time:
sched_fifo_min = sched_get_priority_min(SCHED_FIFO); sched_fifo_max = sched_get_priority_max(SCHED_FIFO); sched_parms.sched_priority = sched_fifo_max - 1; // Najwyzszy mozliwy
if (0 != sched_setscheduler(getpid(), SCHED_FIFO, &sched_parms)) perror("cannot set realtime scheduling policy");
Powinno pomóc.
On Thu, 13 Aug 2009 17:52:53 +0200, Waldemar Krzok napisał:
Ale on macha nóżką, przez outb(). Problemem jest tutaj scheduler. Jasne że lepiej i bez niepotrzebnego czekania można to zrobić w przestrzeni jądra.
dawno nie ogladalem zrodel Linuxa, ale w Unixie outb powodowalo exeption, ktore bylo przechwytywane i dopiero w kernelu mapowane na "prawdziwe" outb.
Waldek
Chyba jednak nie ma :)
Patrz mój post snipped-for-privacy@mail.viste-family.net>. Programik DOSowy (w trybie real mode) zdołał wygenerować na PIII 450 MHz niewiele więcej - 332 KHz...
Pozdrawiam, Mateusz Viste
Podsumowanie uzyskanych predkości machania mojego LPT:
a) Linux - 290kHz b) Windows - 291kHz c) DOS - 297kHz
Wszystko wskazuje na to ze hardware haltuje CPU na określony czas przy dostepie do tego portu.
Jeśli mapowanie portów coś tu miesza, to jest to te 6-7kHz różnicy, czyli tyle co nic.
Moj ISA bridge to ATI SB600. Ku przestrodze :)
A spróbuj wsadzić kartę LPT na PCI - są dostępne w sklepach i to pod nazwą Multi IO ;)
Mirek.
a) nie mam miejsca b) po co? To tylko ciekawostka, wieksza prędkość osiągnę inaczej.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.