# Geräte-Programmierung ?



## U=Spannung (13. Aug 2011)

Hallo,

Habe etwas über Java nachgelesen, was es kann und was nicht, naja müsste man genauer durchlesen.
Es stand geschrieben das Java nicht USB ansprechen kann, und das Systemnahe-applikationen, nur schwer zu programmieren sind, stimmt das?
Wie ist es mit Geräten ausserhalb des PC's, die man über bestimmte Hardwareschnittstellen programmiert, wie USB oder parallele-Schnittstelle. Kann man über diese Schnittstellen, Mikrocontroller programmieren, dass ist ja auch Systemnahe, oder sogar selbst ein kleines Betriebssystem(embedded) ?

Danke
F.


----------



## Noctarius (13. Aug 2011)

Generell stimmt das. Für Java gibt es aber eine Lib zum Ansprechen von USB Geräten. Diese nutzt halt selber einen in C++ geschriebenen Hardware Access. Java selber ist nicht in der Lage hardwarenah zu programmieren.

Allerdings gibt es hier 2 Versuche:
- Es gibt Prozessoren, welche Java direkt ausführen können (also für Embedded Systeme)
- Es gibt / gab mehrere Versuche ein Betriebssystem auf Basis von Java zu schreiben


----------



## Gast2 (13. Aug 2011)

U=Spannung hat gesagt.:


> Wie ist es mit Geräten ausserhalb des PC's,


das sind unterm Strich auch nur "PC's" - somit muss Java darauf laufen



Noctarius hat gesagt.:


> - Es gibt Prozessoren, welche Java direkt ausführen können (also für Embedded Systeme)


die Preise will keine bezahlen 



> - Es gibt / gab mehrere Versuche ein Betriebssystem auf Basis von Java zu schreiben


soviel Speicher hat (wahrscheinlich) kein Embedded-Gerät

Fazit: Assembler, C oder C++


----------



## TheDarkRose (13. Aug 2011)

Was genau willst du jetzt machen. Ich les das aus deiner Beschreibung so nicht heraus. Mikrocontroller programmierst du entweder in Assembler oder C. Die meisten haben einen eigebauten Hardware UART. Damit könntest du mit dem FTDI232 Chip oder FTDI to UART Kabel eine virtuelle COM-Schnittstelle per USB emulieren, welche du dann aus Java am PC mit RXTX kommunizieren kannst.


----------



## U=Spannung (14. Aug 2011)

Hallo,

Wollte nur Fragen stellen, so als Information.



TheDarkRose hat gesagt.:


> Damit könntest du mit dem FTDI232 Chip oder FTDI to UART Kabel eine virtuelle COM-Schnittstelle per USB emulieren, welche du dann aus Java am PC mit RXTX kommunizieren kannst.



Bedeutet das, dass man mit Java(vielleicht mit hochoptimierter JVM) auch solche chips programmieren könnte?
Diese FTDI232 chips, sind die wie FPGA's ?
Könnte man nicht z.B. so ein FPGA mit R232 oder USB anschliessen und ein Linux Kernel drauf spielen?

Grüsse
F


----------



## TheDarkRose (14. Aug 2011)

NEIN! Microcontroller werden in C oder Assembler programmiert! Und weißt du überhaupt was ein FPGA ist? Ein übegroßes Logik-Array. Da kannst sowieso nichts anderes draufspielen, als Logikverknüpfungen.
FTDI232 sind eine IC-Serie, die z.b RS232 Schnittstellen auf 5V UART wandeln, oder USB zu 5V UART, oder USB zu ner RS232 Schnittstelle.


----------



## U=Spannung (14. Aug 2011)

Diese FTDI's könnte man so für verschiedene Sachen benutzen. Zum Beispiel wenn man ein Gerät mit einer anderen Schnittstelle hat als USB, um so das Gerät über USB zu betreiben? Also vielleicht eine IDE-Schnittstelle zu einer USB machen?

Wegen den FPGA's, nebenbei hatte ich etwas im Internet gelesen, das diese chips auch benutzt werden, für embedded systeme, was auch Java könnte. Bin aber unsicher wie man das umsetzen könnte.
Möglicherweise hast du auch praktische Erfahrungen gesammelt in diesem Bereich.


----------



## Gast2 (15. Aug 2011)

> Bin aber unsicher wie man das umsetzen könnte.


gar nicht - ein FPGA macht nicht das was Du willst (Java drauf laufen lassen) ... Field Programmable Gate Array ? Wikipedia


----------



## TheDarkRose (15. Aug 2011)

U=Spannung hat gesagt.:


> Diese FTDI's könnte man so für verschiedene Sachen benutzen. Zum Beispiel wenn man ein Gerät mit einer anderen Schnittstelle hat als USB, um so das Gerät über USB zu betreiben? Also vielleicht eine IDE-Schnittstelle zu einer USB machen?


Ne, nur USB<->RS232(UART)!


U=Spannung hat gesagt.:


> Wegen den FPGA's, nebenbei hatte ich etwas im Internet gelesen, das diese chips auch benutzt werden, für embedded systeme, was auch Java könnte. Bin aber unsicher wie man das umsetzen könnte.
> Möglicherweise hast du auch praktische Erfahrungen gesammelt in diesem Bereich.



Nein. Java kannst du so nicht auf embedded Systemen betreiben.


----------



## Noctarius (15. Aug 2011)

Er hat vermutlich das hier gelesen (es steht da etwas seltsam formuliert ) Java-Prozessor ? Wikipedia


----------



## U=Spannung (15. Aug 2011)

Das habe ich in folgendem Link gelesen.

https://secure.wikimedia.org/wikipedia/de/wiki/Embedded_System

Dort steht auch was von FPGA's und Java.

Schade das man mit FTDI's nicht ATA-, IDE-USB und so realisieren kann.

Wie könnte man zum Beispiel einen Taschenrechner wie TexasInstruments, mit Java programmieren, was für Hardware-Schnittstellen braucht man?


----------



## Noctarius (15. Aug 2011)

Ja aber das sind dann spezielle Embedded Geräte.

Embedded Java ist auch etwas spezielles, nämlich z.B. eine Real-Time Laufzeitumgebung (https://secure.wikimedia.org/wikipedia/de/wiki/Embedded_Java)


----------



## TheDarkRose (15. Aug 2011)

U=Spannung hat gesagt.:


> Wie könnte man zum Beispiel einen Taschenrechner wie TexasInstruments, mit Java programmieren, was für Hardware-Schnittstellen braucht man?



Kann man einfach nicht! Java ist keine eierlegende Wollmilchsau!


----------



## Jango (15. Aug 2011)

TheDarkRose hat gesagt.:


> Kann man einfach nicht! Java ist keine eierlegende Wollmilchsau!



Aber viele tun so, deshalb entstehen auch solche Vorstellungen plus resultierenden Fragen.


----------



## Noctarius (15. Aug 2011)

Naja das könnte man von C# / .NET auch behaupten. Ich erinnere mich nicht, dass das hier irgendwann mal wer geäußert hätte. Jeder der sich mit Java auskennt weiß, dass das nicht stimmen würde.


----------



## Jango (15. Aug 2011)

Noctarius hat gesagt.:


> Naja das könnte man von C# / .NET auch behaupten.



Jo.


----------

