PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : probleme: Basic-Stamp2-Compiler (bstamp) & Linux



nomad
20.12.04, 15:12
betr: probleme: Basic-Stamp2-Compiler (bstamp) & Linux

hi leute,
da ich mich mit den BasicStamps von Parallax beschaeftige,
fand ich amerikanischen Linux-Journal(Jan.2005 issue 129)
einen hinweis, dass man auch mit linux basicStamps2 programmieren
kann:
unter: www.linuxjournal.com/article/7741
fand ich = bstamp-2004.05.15

vielleicht hat schon von euch, erfahrungen damit????

installation auszug aus readme.txt:
" the following commands will allow you to install the bstamp utilities:
Extract the bstamp program source code to a directory, and move into
directory.

> make clean
> make
> cp bstamp_run /usr/local/bin
> cp bstamp_tokenizer /usr/local/bin
> cp tokenizer.so /usr/local/lib/libbstamptokenizer.so
das ging alles glatt

das compilieren der source gemaes readme.txt:
also
1 - First, create a program for your BASIC Stamp using the PBASIC language.
2 - Save the PBASIC code as an plain ASCII text file. (e.g., "hello.bs2")
3 - run the "bstamp_tokenize" program on the PBASIC code.
bstamp_tokenize hello.bs2 hello.tok
== libbstamptokenizer.so: cannot open shared object file:
No such file or directory: Success
PBASIC Tokenizer Library version 1.16
ein *.tok-file wurde erzeugt
4 - bstamp_run hello.tok
Error: No BASIC Stamp identified!
Probably the stamp isn't connected, perhaps your stamp version isn't supported?
Try looking at the help, try 'bstamp_run -h' for more information.

jetzt faengt das problem an:
bei der installation wird im readme.txt
folgendes vorgeschlagen:
zitat: if necessary, make the com1 serial port
> MAKEDEV /dev/ttyS0
Then you must make a symbolic link to the proper serial port.
This can be done with:
> ln -s /dev/ttyS0 /dev/bstamp

Das "MAKEDEV" geht bei mir (Suse 9.1. prof) eindeutig nicht.
und das device bstamp ist bei mir leer?????
da sollte vermutlich mit makedev ein device namens bstamp
erzeugt werden.

frage: wie kann ich dieses device erzeugen.

in den mailinglisten ist wohl ein problem mit "Error: No BASIC Stamp identified!"
vorhanden, es bezieht sich meiner meinung aber nur darauf, dass nur BS2-controller
erkannt werden...

waere um jede hilfe und jede erfahrung dankbar,
mfg nomad

tholan
21.12.04, 23:50
...wo fängt man an, und wann darf man aufhören?
Aus Deinen Infos ist nur schwer schlau zu werden.
Ich nehme an, Du zitierst hier die README
und mischst die Fehlermeldungen, die Du bekommst
darunter.

MAKEDEV mußt Du ganz bestimmt nicht machen.
und was heißt:
"und das device bstamp ist bei mir leer?????"
"bstamp" ist kein device, sondern nur ein
symbolischer Link auf das sicher vorhandene device ttyS0
Den machst Du genau wie es da steht:
> ln -s /dev/ttyS0 /dev/bstamp
Ich weiß nicht, wie viele Serielle aus Deinem Rechner
noch rausgucken, vielleicht hast Du ja Deine Stamp
auch an die Zweite gehängt.
Dann muß es natürlich heißen:
> ln -s /dev/ttyS1 /dev/bstamp

Vielleicht lügen auch die Fehlermeldungen.
ist die hello.tok überhaupt vorhanden?
und wenn, ist da was drin (>0)?

waren die Abhängigkeiten beim kompilieren
erfüllt (Compilerwarnungen)

Sind die seriellen Schnittstellen in Deiner Distri überhaupt
zugänglich?

Mußt Du Baudraten und Protokollparmeter (z.B 8,N,1) einstellen?

nomad
22.12.04, 10:06
hi
vielen dank fuer deine antwort,
zu deinen fragen:


"und das device bstamp ist bei mir leer?????"
"bstamp" ist kein device, sondern nur ein
symbolischer Link auf das sicher vorhandene device ttyS0
Den machst Du genau wie es da steht:
> ln -s /dev/ttyS0 /dev/bstamp

== ok das hab ich verstanden:
QUOTE:
Ich weiß nicht, wie viele Serielle aus Deinem Rechner

== insgesamt 5
haengt aber an ttyS0
da ich mit einem seriellen C-pgm sehrwohl den output des basicstamps bekomm.

QUOTE.
Vielleicht lügen auch die Fehlermeldungen.
ist die hello.tok überhaupt vorhanden?
und wenn, ist da was drin (>0)?

== ist ok

QUOTE:
waren die Abhängigkeiten beim kompilieren
erfüllt (Compilerwarnungen)

== # make
g++ -c -o bstamp_tokenize.o bstamp_tokenize.cpp
g++ -Wall bstamp_tokenize.o -o bstamp_tokenize -ldl
g++ -c -o bstamp_run.o bstamp_run.cpp
bstamp_run.cpp:3:1: warning: "_GNU_SOURCE" redefined
<command line>:4:1: warning: this is the location of the previous definition
g++ -Wall bstamp_run.o -o bstamp_run

== erstellen des .tok-files

bstamp_tokenize hello.bs2 hello.tok
PBASIC Tokenizer Library version 1.16

dann der fehler:
bstamp_run hello.tok
Error: No BASIC Stamp identified!
Probably the stamp isn't connected,
perhaps your stamp version isn't supported?
Try looking at the help,

QUOE:
Sind die seriellen Schnittstellen in Deiner Distri überhaupt
zugänglich?

== JA
QUOTE:
Mußt Du Baudraten und Protokollparmeter (z.B 8,N,1) einstellen?
== alles ok

weitere tips???
hab keine ahnung was ich als naechstes tun soll??
mfg nomad

derguteweka
22.12.04, 12:59
Moin,


3 - run the "bstamp_tokenize" program on the PBASIC code.
bstamp_tokenize hello.bs2 hello.tok
== libbstamptokenizer.so: cannot open shared object file:
No such file or directory: Success
PBASIC Tokenizer Library version 1.16
ein *.tok-file wurde erzeugt

Gegen den Fehler, wuerd' ich sagen, koennt' ein als root ausgefuehrtes "ldconfig" helfen.
Dann nochmal versuchen. Das MAKEDEV brauchst du nicht; jeder - insbesondere du :) hat den /dev/ttyS0 device node.

Gruss
WK

tholan
22.12.04, 14:06
Erstmal: 5 x RS232 ?????
Is das 'n spezielles Board, oder hast Du 'ne zusätzliche serielle Karte drin?
Reden wir über die gleiche Schnittstelle?

An "ldconfig" hatte ich auch gedacht,
Nur werden die "shared Library Links" mit dem
nächsten Neustart doch sowieso ge-"updated".

Soll meinen:
Der Pfad zur Bibliothek muß dem Programm bekannt sein.
Wenn Du die Bibliothek per Hand in den lib- Ordner verschiebst,
kann es sein, daß das Programm nicht weiß, wo es seine Bibliothek findet.
allerdings nur bis zum nächsten Neustart,
Den Job "ldconfig" kannst Du natürlich auch per Hand ausführen.

Baudraten und Parameter für die Serielle stellt man mit dem Kommando
"stty" ein, hab ich auch grad erst gelernt.
Werd mal rauskriegen , ob man hier auf andere Threads
linken kann..
Is halt nur die Frage, ob Dein Programm das selbst erledigt,
oder ob Du's vorher einstellen mußt.

nomad
22.12.04, 15:37
hi leute,
vielen dank fuer die antworten:

an dergutweka,
so sieht man sich wieder, jetzt weisst du warum ich die exsys-carte brauchte..... :-)
fuer tholan: ja, eine 4-port pci-exsys-card

Quote: An "ldconfig"
gemacht mit root /sbin/ldconfig
ich hab das make nochmals von vorn durch laufen....
keine ahnung was da los ist.
in den mailings fuer bstamp: kam der fehler auch schon vor, aber
da gings meiner meinung nach nur darum, dass bstamp nur bs2 erkennt.
ich steh mit staunenden augen da....
PS:
QUOTe:
Baudraten und Parameter für die Serielle stellt man mit dem Kommando
"stty" ein, hab ich auch grad erst gelernt.
Werd mal rauskriegen ,
== hab ein kleines c-pgm (das liest normaler weise vom bs2,
wenn ich da das "read" rausnehm, kann ich den ganzen stuff
auf die gewuenschte Baudrate und das MODEMDEVE einstellen also ttyS0
== waer das eine moeglichkeit, derguteweka weiss welches pgm ich meine.

ich meld mich dann morgen
mfg nomad

derguteweka
22.12.04, 22:33
Moin,


== hab ein kleines c-pgm (das liest normaler weise vom bs2,
wenn ich da das "read" rausnehm, kann ich den ganzen stuff
auf die gewuenschte Baudrate und das MODEMDEVE einstellen also ttyS0
== waer das eine moeglichkeit, derguteweka weiss welches pgm ich meine.

ich meld mich dann morgen
mfg nomad
Hmm, hab' mir mal die SW kurz angeguckt, den Fehler krieg' ich genauso hin, auch ohne .tok file und ohne irgendwelche HW am Port (Kein wunder). Also wenns das mit dem ldconfig nicht war, dann weissich auch nich so auf Anhieb weiter. Klaro, mit deinem c-prograemmchen kannste die Baudrate etc. einstellen, musst nur gucken, dass sie auch so bleibt, wenn das Programm zuende ist. Sonst ggf. noch mal die Strippen ueberpruefen und ggf. mitm Scope, so vorhanden mal gucken, ob/wo sich was auf der Seriellen tut...

Gruss
WK

nomad
23.12.04, 09:44
hi dergutewka,[

QUOTE=derguteweka]Moin,


Hmm, hab' mir mal die SW kurz angeguckt, den Fehler krieg' ich genauso hin, auch ohne .tok file und ohne irgendwelche HW am Port (Kein wunder). Also wenns das mit dem ldconfig nicht war, dann weissich auch nich so auf Anhieb weiter.
== vielen dank,
wenn der bs2 via windows programmiert ist, hab ich mit meinem serial-program zugriff auf den bs2 (only read)

QUOTE:
Klaro, mit deinem c-prograemmchen kannste die Baudrate etc. einstellen, musst nur gucken, dass sie auch so bleibt, wenn das Programm zuende ist. Sonst ggf. noch mal die Strippen ueberpruefen und ggf. mitm Scope, so vorhanden mal gucken, ob/wo sich was auf der Seriellen tut...

== es tut sich was... & ss.oben

== ja, das ginge indem ich einfach bevor ich das ganze zuruecksetze und ein fclose(fr) mach
"stystem("bstam_run hello.tok"); " einfuege und dann gucke was passiert.

= da im linux-magazin in keiner weise auf dieses programm eingegangen wird,
sondern es funktioniert eben alles (weder distro noch sonst was angegeben ist)
und die mailings auch nicht gerade erhebend waren, waers das wohl..
aber eben, es waer net gewesen.... und jetzt ist weihnachten.....
vielen dank fuer deine hilfe
und frohe festtage wuensch ich dir
mfg nomad