- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 49

Thema: HaikuVM A Java VM for ARDUINO and other micros using the leJOS runtime.

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    28.10.2012
    Beiträge
    26
    Schade, dass es hierzu bisher kein Feedback gegeben hat. Denn gerade bei der Roboterprogrammierung vermißt man schon mal schmerzlich Threading. Es geht zwar auch anders ... aber JAVA (und damit HaikuVM) bietet hierfür einen Sprachstandard (synchronized, wait(), etc.) und die Klasse Thread. Vielleicht sollte ich noch mal für HaikuVM werben und mache hiermit auf zwei Highlights aufmerksam:

    1) Single line command interface
    Nach dem Download genügt ein Einzeiler um ein JAVA Programm (z.B. BlinkWithThread) zu compileren, uploaden und zu starten wenn der Arduino z.B. an Port com5 angeschlossen ist:
    Code:
    C:\haikuVM\bin\haiku -v --Config arduino --Config:Port com5 -o BlinkWithThread.hex C:\haikuVM\examples\src\main\java\arduino\tutorial\BlinkWithThread.java
    2) Direct memory access
    Statische Felder welche mit @NativeCVariable# annotiert sind (wobei # in 8, 16, 32 oder 64) werden direkt auf gleichnamige C Variablen gemapt. Dadurch kann man mit HaikuVM auch hardwarenah programmieren (ohne extra C Code schreiben zu müssen):
    Code:
        ...
        public static final int UDRE0 = 5;
        @NativeCVariable8 // tells HaikuVM to map UCSR0A to an AVR 8Bit C variable called UCSR0A
        public static int UCSR0A;
        @NativeCVariable8 // tells HaikuVM to map UDR0 to an AVR 8Bit C variable called UDR0
        public static int UDR0;
        ...
        public void write(int b) {
            while ( (UCSR0A & (1 << UDRE0)) == 0 ) /*poll*/ ;
            UDR0=b;
        };

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    74
    Beiträge
    1.175
    Blog-Einträge
    1
    Hallo Haiku !
    Also ich bin mal den Links gefolgt und mich mal ein bischen belesen , so gut es für mich als nur deutsch-lesender ging. Ist bestimmt nicht schlecht diese HaikuVM, aber ich komme mit der ArduinoIDE ganz gut, ansonsten macht es auch Bascom oder avr-studio in GCC bzw. asm. darum werde ich mir nicht noch eine andere Variante der Programmierung annehmen, ohne sie negieren zu wollen....

    Was nun die Codegrösse anbetrifft , darüber lässt sich diskutieren ob es dann eine andere Anwendung bei der Programmierung gerecht macht, was man an Speicher einspart...
    Wer nun auf den 8K vom Asuro verharren möchte der findet bestimmt auch Wege, was ging früher alles mit dem C-64 und seinen "mickrigen" 64k...
    Deine , oder diese VM-Idee ist bestimmt nicht schlecht, aber ich bleib bei meinen "alten Schuhen"...

    Gerhard
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    28.10.2012
    Beiträge
    26
    Hallo Oberlachs,
    ist ja mal nett, dass wenigstens einer drauf reagiert.

    Deine Argumente versteh' ich nur zu gut. HaikuVM soll dann auch nicht ArduinoIDE, Bascom oder avr-studio mit GCC bzw. asm ersetzen. Sondern eben nur als weitere open-source Alternative zur Verfügung stehen. Vielleicht dann, wenn man mit den Anderen nicht oder nur umständlich weiter kommt (z.B. bei Hirnverzwirnern bei denen eigentlich eine knappe parallelisiert Lösung mit JAVA Threads am elegantesten wäre) oder wenn man mit seinem JAVA Schulwissen auch einen 8bit bzw. 16bit Microcontroller programmieren möchte.

    Das mit einer JAVA VM für Microcontroller ist ja auch nicht meine Idee, sondern ich bin da ganz in den Fußstapfen von NanoVM (und anderen). Natürlich habe ich daraus gelernt und hoffe es noch ein bißchen besser (und für den Anwender bequemer) gemacht zu haben.
    Geändert von haikuvm (16.02.2013 um 11:08 Uhr)

  4. #4
    Hi HaikuVM,

    super Sache. Kenne die lejos VM vom Lego NXT - damit lässt sich diefinitiv mehr viel mehr aus dem Stein raushlone als mit NXTG.
    Und noch besser so hat mein Sohnemann angefangen Java zu programmieren.

    Bin dadurch zum FAN von Java geworden, weil viele Sache nicht so komplex sind wie bei C++.

    Nun haben wir ein NIBObee bekommen (wegen Löten und näher an der Technik) und wollen natürlich die bewährte Eclipse/Java Umgebung auch für den NIBObee nutzen.
    Hatte mich schon mal bei NanoVM eingelesen - sah aber recht fummelig aus.

    Da kommt uns HaikuVM gerade recht - soll ja auf dem Asuro funktionieren also dann beim NIBObee allemal - oder ?
    Gibt es etwas zu beachten ?

    Vielleicht hast du ja ein paar Tips für den Anfang.
    Auf jedenfall Fall weiter so -auch wenn noch nicht viele Posts gekommen sind - und nicht beirren lassen.

    catweazel

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    28.10.2012
    Beiträge
    26
    Hallo catweazel,

    Na klar geht es weiter! Z.Zt. integriere ich ProGuard in den haikufy Prozess. ProGuard optimiert Bytecode. C Compiler haben so was von Haus aus. JAVA Compiler überlassen das heute lieber der HotSpot VM und die hat HaikuVM eben nicht (wäre auch viel zu groß für einen Micro).

    Den NIBObee habe ich nicht. Ich denke aber, dass auch NIBObee damit funktionieren sollte. Z.Zt. läuft HaikuVM definitiv für die Targets:
    • Atmega8
    • Atmega328p aber auch für
    • UBUNTU und
    • Windows
    als Target Maschinen.

    Du fragst nach Tipps:

    1) Langsam anfangen.
    Kopier Dir mit Eclipse das asuro Tutorial
    • C:\haikuVM\examples\src\main\java\asuro\tutorial

    ins neue nibobee Tutorial
    • C:\haikuVM\examples\src\main\java\nibobee\tutorial

    und fange darin an ein Programm nach dem anderen auf den NIBObee um zu schreiben.

    2) Folgende Zeilen für NIBObee in HaikuVM.properties anhängen
    Code:
    # NIBObee
    nibobee.Extends = AVR
    nibobee.Target = atmega16
    nibobee.MemorySize = 700
    nibobee.Clock = 15000000
    nibobee.MicroKernel = haiku.avr.lib.asuro.lib2_8_0_rc1.HaikuMicroKernelEx
    nibobee.Port = com7
    Damit Du auch bequem die Programme aus Schritt 1 mit nur einer Zeile testen kannst:
    Code:
    C:\haikuVM\bin\haiku -v --Config nibobee -o BlinkWithThread.hex C:\haikuVM\examples\src\main\java\nibobee\tutorial\BlinkWithThread.java
    Über Dein Feedback würde ich mich freuen.

  6. #6
    Hi Haiku,

    danke für die ausführliche Antwort.
    Wenn ich morgen Zeit habe, werde ich deine Tips mal umsetzen.

    Melde mich wieder hier, wenn es Neuigkeiten/Fragen/Probleme gibt.

    catweazel
    salmay dalmay adonay

Ähnliche Themen

  1. [ERLEDIGT] [ARDUINO] 2 Motoren + Servo mit dem Arduino Uno steuern
    Von Torrentula im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 31.08.2011, 16:31
  2. ARDUINO ARDUINO l293D + MegaservoLib
    Von m1ch15inner im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 2
    Letzter Beitrag: 11.07.2011, 11:50
  3. Runtime Error! in AVR Studio
    Von NemesisoD im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 05.01.2007, 19:30
  4. (LEGO MINDSTORMS) lejos Klassen Facharbeit
    Von George Dorn im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 0
    Letzter Beitrag: 01.03.2006, 16:29
  5. lego, lejos, logitech ;)
    Von maze2k im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 7
    Letzter Beitrag: 21.05.2005, 22:21

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress