Hallo alle zusammen,
ich suche eine Programmierumgebung ala Turbo/Borland Pascal (DOS ASCII) für Linux. Kann auch für C sein. Wer kann mir da weiterhelfen? Sollte allerdings nicht grafisch sein - mag ich für solche Zwecke nicht. Kann ich unter Linux eigentlich mit C/Pascal direkt auf die serielle/parallel Schnittstelle zugreifen - in Pascal ==> port[adresse]:= variable; bzw. variable:=port[Adresse]; ? Dies wäre mir sehr wichtig. Lassen sich eigentlich mit PERL Hardwarezugriffe realisieren?
Gruß und Danke schon im voraus
Tilo
-- Tilo Wetzel, Dresden http://www.elline.de
http://www.linux.elline.de http://www.netzwerk.elline.de http://www.elektronik.elline.de
Linux ... oder haben SIE einen Rasenmähermotor in Ihrem Sportwagen?!
Am Tue, 15 Aug 2000 schrieb Tilo Wetzel:
Hallo alle zusammen,
ich suche eine Programmierumgebung ala Turbo/Borland Pascal (DOS ASCII) für Linux. Kann auch für C sein. Wer kann mir da weiterhelfen?
Da kann ich wpe bzw. xwpe empfehlen, die sich sowohl nach dem Aussehen wie auch der Tastenkombinationen an der von Borland orientiert.
ich unter Linux eigentlich mit C/Pascal direkt auf die serielle/parallel Schnittstelle zugreifen - in Pascal ==> port[adresse]:= variable; bzw. variable:=port[Adresse]; ?
Nein, könnte man dies, wäre Linux ja genau so instabil wie Dos/Win95... Stattdessen muß root unter C mit der Funktion ioperm() einen Adressbereich freischalten und wieder sperren. Zugegriffen wird über outb() und inb(). Diese Programme können aber ebend nur von root ausgeführt werden. Die sauberste Lösung ist freilich ein Kernelmodul... Was hast du genau vor?
Lassen sich eigentlich mit PERL Hardwarezugriffe realisieren?
Nur als root über ioperm/inb/outb (hoffe ich mal...)
Ciao, Tobias
Tilo Wetzel wrote:
Hallo alle zusammen,
ich suche eine Programmierumgebung ala Turbo/Borland Pascal (DOS ASCII) für Linux. Kann auch für C sein. Wer kann mir da weiterhelfen? Sollte allerdings nicht grafisch sein - mag ich für solche Zwecke nicht.
Es gibt da z.B. RHIDE, hab ich nur mal kurz probiert sieht aber so wie TP für DOS aus.
Jan
On Tue, 15 Aug 2000, Tilo Wetzel wrote:
ich suche eine Programmierumgebung ala Turbo/Borland Pascal (DOS ASCII) für Linux. Kann auch für C sein. Wer kann mir da weiterhelfen? Sollte
ich auch :-) Konrad hat mir mal wpe empfohlen und ist auch nicht schlecht. Ist im Borland Stil aufgemacht, aber von der Bedienung (für Umsteiger) recht gewöhnugbedürftig (HotKeys), ich hoffe aber dass man wie sonst auch bei Linux da noch einiges einstellen kann (noch weis ich nicht wie). z.B. ist das markieren - und einfügen nicht so schön mit CTRL-INS und SHIFT-INS zu machen, sonder mit krypthischen Blocktasten definition wie ^K - b und ^K - e Sonst lassen sich auch mehrere files gleichzeitig öffnen, lässtig ist nur, dass noch jedem comlilieren der in das Messages-Window springt und man wieder mit ALT-(2-9) und den eigentlichen Quellcode wechseln muss Und dann hatte ich heute ein recht zauberhaftes Verhalten beim Compilieren bzw. Run: mal kammen warungen, dann wieder fatale fehler. Ich glaube der hat da immer mal wieder was mit den Compiler optionen durcheinander gebracht, ich weis blos net wo ich das richtig definieren kann (und der wurschtelt da auch noch irgentwie mit make rum) und meine gelinkte file war dann auf einmal in einem ganz anderen Verzeichnis *komisch*
na, egal, ich hoffe das sind _nur_ konfigurationsprobleme Aber sonst isses recht schön :-)
Weis jemand noch was besseres? :-)
allerdings nicht grafisch sein - mag ich für solche Zwecke nicht. Kann ich unter Linux eigentlich mit C/Pascal direkt auf die serielle/parallel Schnittstelle zugreifen - in Pascal ==> port[adresse]:= variable; bzw. variable:=port[Adresse]; ? Dies wäre mir sehr wichtig.
Ha, ich glaube nun sind wir schon so 3 oder 4 leute die da was ähnliches vorhaben (endlich mal ein paar hardware programmierer :-) Also, wie ich das bis jetzt verstanden hab: Auf Grund des Sicherheitssystems und der Grundstrucktur von Linux, trennt Linux die Hardware vom User total (es könnte ja sein, das jemand...sich einschleicht). Die Verbindung zw Application und Harware-Ressorcen ist der Kernel, d.h. alle Hardwarezugriffe werden vom Kernel gesteuert und root muss sie freigegeben haben. Daher wird jedes Gerät über einen Gerätetreiber des kernels (Kernelmodul) angesprochen (z.B.: Soundtreiber, cdromtreiber, netzwerkkarte usw. und auch die parallele Schnittstelle dev/lp1) Daher ist es schon verständlich, dass ein direkter Hardwareeingriff (wie a:=port[$378]) nur als root zulässig ist :-( ist für mich als Hardware-programmierer ein grosses umdenken) also für root:
#include <sys/perm.h> #include <asm/io.h>
int p_open_port(unsigned int lpt_adr) { if(ioperm(lpt_adr, 2, 1)) { return 1; } outb(3, lpt_out); /* oder was auch immer für 3 */ return 0; }
das ist natürlich dann keine gute Lösung, seine Port-programme nur als root laufen zu lassen, so das man den Port-Zugriff nur über ein Kernelmodul sauber lössen kann. Denkbar wäre eine Charakter-Device auf das man dann wie eine normal file zugreifen kann, um die einzelnen Bits zu setzen oder zu lesen. So fragt sich nun nur noch wie ??? :-) Einen Char-Dev-Treiber für meinen Taschenrechner hab ich da (über lpt), aber so ganz vesteh tu ich ihn noch nicht und wollte mich jetzt auch selber von unter durcharbeiten.
Achso apropos Bücher, ich hab mich heute "Linux-Geräte-Treiber" im Haus des Buches festgelesen :-) Und ich glaub ich investier mal die 69,- oder hat es jemand schon selbst und könnte es mir mal ausleihen?
Danke, Friedrich
Hallo,
Friedrich Hagedorn friedrich_h@gmx.de schrieb:
Denkbar wdre eine Charakter-Device auf das man dann wie eine normal file zugreifen kann, um die einzelnen Bits zu setzen oder zu lesen. So fragt sich nun nur noch wie ??? :-)
Zumindest fuer ttyS? gibt es die Moeglichkeit, die Modem-Control-Leitungen direkt per ioctl zu setzen und zu lesen. Ich glaube fuer lp? gibt es aehnliches fuer die Steuerleitungen und sicher auch fuer die Datenleitungen. Wenn es nicht zu sehr um hoehe Performance geht, ist dieser Zugriff sicher am schnellsten in ein Programm einzubinden und die Berechtigungen zu administrieren.
Fuer die Berechtigung reicht es dann, /dev/lp? entsprechend zu konfigurieren, und man gibt dann nur die IO-Adressen frei, die zur parallelen Schnittstelle gehoeren, anstatt alle im Fall von /dev/port.
Zur Frage, welche ioctl-Parameter zu uebergeben sind, kann man in die Kernelquellen schauen und im Geraetetreiber nach "ioctl" suchen.
Gruss
Holger
Hallöchen,
das WPE macht ja erstmal keinen schlechten Eindruck. Jetzt muß ich nur noch C lernen.
Danke fürs erste
Gruß Tilo
hzzp://www.elline.de
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Fri, 18 Aug 2000, Carsten Schurig wrote:
On 18-Aug-00 Tilo wetzel wrote:
das WPE macht ja erstmal keinen schlechten Eindruck. Jetzt muß ich nur noch C lernen.
Wenn's dich nicht stört unter X zu programmieren, nimm KDevelop und lerne C++.
Das halte ich fuer keine gute Idee.
1. xwpe heisst _x_wpe, weil es wpe unter X ist.
2. C++ setzt sehr gute C-Kenntnisse voraus. Man sollte ausserdem vorher schonmal Pascal oder eine andere "zwangs-strukturierte" Sprache gemacht haben, um zu wissen wie es gehen _soll_ bevor man die Regeln bricht wo es _sinnvoll_ ist.
3. KDevelop? Bietet das inzwischen einen Modus, der nicht in den Quelltext-Baum eingreift? Der minimalste Modus, den ich zuletzt (April) gesehen habe erzeugte immerhin ein ganzes Verzeichnis! Schlimmer noch: er hat es ins CVS eingecheckt.
Konrad
- -- GPG-Key: http://lug-dd.schlittermann.de:11371/pks/lookup?op=get&search=0x0F4648C4 FingerPrint: B333 F8FB 644A D695 F494 7068 9BAA 4EEC 0F46 48C4
lug-dd@mailman.schlittermann.de