-
        

Ergebnis 1 bis 3 von 3

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

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    28.10.2012
    Beiträge
    26

    HaikuVM - A Java VM for ASURO, ARDUINO and other micros using the leJOS runtime.

    Anzeige

    Hallo,

    ich möchte in diesem Forum HaikuVM vorstellen.

    HaikuVM ist eine weitere JAVA VM für Micros (ich habe mal mit dem ASURO und deshalb AVRs angefangen). In diesem Forum wurde schon mal NanoVM vorgestellt die das auch ähnlich konnte. Das Besondere ist, dass ich entschieden habe keine eigene Runtime zu bauen (viel zu aufwendig). Statt dessen nutze ich die (von mir) javierte ASURO lib 2.8.0 rc1 und die Runtime von leJOS, einem großen JAVA Projekt für Lego Mindstorms Robotics Invention Kit Bausätze.

    HaikuVM ist so klein, dass es sogar auf einem Atmega8 und dem ASURO Roboter läuft.
    Und ja, man kann damit einen ASURO Roboter mit JAVA programmieren!

    Wer schon mal seinen ASURO mit parallelen Threads programmieren wollte, z.B. einige LEDs mit unterschiedlicher Frequenz blinken lassen ... so geht's:
    Code:
    package asuro.tutorial;
    import static haiku.avr.lib.asuro.lib2_8_0_rc1.AsuroLib2_8_0_rc1.*;
    
    public class BlinkWithThread {
        private static class blink_Task extends Thread {
            public void run() {
                while (true) {
                    BackLED(ON, ON);
                    Msleep(1000);
                    BackLED(OFF, OFF);
                    Msleep(1000);
                }
            }
        }
    
        public static void main(String[] args) {
            Init();                   // initialize the ASURO
            
            new blink_Task().start(); // starts the parallel blink task.
    
            while (true) {
                StatusLED(GREEN);
                Msleep(500);
                StatusLED(RED);
                Msleep(500);
            }
        }
    }
    HaikuVM funktioniert indem JAVA bytecode nach C Code konvertiert wird um letztlich durch einen C cross compiler für die Zielplattform kompiliert zu werden.

    Notwendige Software:
    1. JAVA 1.6
    2. WinAVR (C cross compiler für AVRs)
    3. HaikuVM
    4. Eclipse IDE (optional)


    Features von HaikuVM:
    • Preemptive threads
    • Exceptions
    • Synchronization
    • double and float support
    • Arrays, including multidimensional ones
    • Recursion
    • Garbage collection
    • Supports inheritance and interfaces
    • Runs on AVR ATmega8, AVR ATmega328p (and Windows, UNIX)
    • Configurable 64, 32 or 16 bit data types including half precision float
    • Configurable 16 or 8 bit char type
    • Tested with Suns JAVA 1.6
    • Zero Assembler Code
    • Requires only down to 5k Bytes of code memory (includes HaikuVM and your Java program)
    • Needs only 250 Bytes RAM (the rest is for your JAVA application)
    • About 55k Java opcodes per second on 8 Mhz AVR ATmega8

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von Thomas E.
    Registriert seit
    29.12.2011
    Beiträge
    638
    Sehr interessant!

    Zitat Zitat von haikuvm Beitrag anzeigen
    Wer schon mal seinen ASURO mit parallelen Threads programmieren wollte, z.B. einige LEDs mit unterschiedlicher Frequenz blinken lassen ... so geht's:
    Dieses Argument hinkt ein wenig, denn LEDs mit unterschiedlicher Frequenz blinken zu lassen sollte in keiner Sprache ein Problem sein und hat wenig mit parallelen Threads zu tun.
    Grüße
    Thomas

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    28.10.2012
    Beiträge
    26
    Natürlich geht das irgendwie. Hier wimmelt es von Vorschlägen wie "State Machine".
    Ich kann jetzt mit meinem ASURO einer Linie folgen. Wie kann ich gleichzeitig das Status LED blinken lassen?
    Antwort:
    Das geht mit einer "State Machine".
    Mein Punkt ist die Variante: Threads mit Java.

Ähnliche Themen

  1. Antworten: 48
    Letzter Beitrag: 16.11.2014, 08:46
  2. Asuro mit Java programmieren
    Von nokri im Forum Asuro
    Antworten: 10
    Letzter Beitrag: 23.02.2007, 21:20
  3. Runtime Error! in AVR Studio
    Von NemesisoD im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 05.01.2007, 20:30
  4. JAVA VM für Asuro
    Von Rubi im Forum Asuro
    Antworten: 2
    Letzter Beitrag: 21.09.2005, 16:18
  5. Java VM für den Asuro
    Von Harbaum im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 15.09.2005, 14:09

Berechtigungen

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