- 12V Akku mit 280 Ah bauen         
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
    Hallo janvp,

    jetzt gibt es die Version 1.0.0 von HaikuVM. In der habe ich Linux Scripte hinzugefügt.
    Genaueres zu Linux findet sich hier: http://haiku-vm.sourceforge.net/#Linux

    Auf dein feedback bin ich gespannt.
    Ansonsten viel Spaß damit.

    PS:
    Was hast du eigentlich genau vor? Wie soll dein Roboter aussehen?

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    25.01.2013
    Beiträge
    12
    Hi Haiku,

    Vielen Dank für die Linux-Skripte. Am Wochenende werde ich es mal ausprobieren. Brauche ich einen ISP oder geht das auch mit dem eingebauten Programmer? HEX-Dateien kann man ja mit avrdude auf den Arduino übertragen.

    Eigentlich hab ich nach einer Lösung zur Übertragung von Daten zwischen dem NXT und Arduino gesucht. Dabei bin ich über dieses interessante Projekt gestolpert. Die Übertragung hab ich jetzt per I2C gelöst.
    Geändert von janvp (13.02.2013 um 15:07 Uhr)

  3. #3
    kaijoe
    Gast
    Hallo Haiku,

    ich habe einen Arduino Uno Selbstbau mit einem ATMega328P.
    Benötige ich die Arduino Uno Firmware auf dem ATMega328P und die Arduino Software?


    Gruß
    Kai

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    28.10.2012
    Beiträge
    26
    @janvp,
    eigentlich sollte alles gehen was der avrdude unterstützt.
    - Avrdude für Windows ist im HaikuVM Download mit drin.
    - Avrdude etc. für Linux muss man selbst installieren. Hier http://haiku-vm.sourceforge.net/#Linux steht wie's geht.
    Als Commandline Parameter übergebe ich 'stk500v1'. Aber das kann man konfigurieren, indem man in 'HaikuVM.properties' die folgende Zeile an seine Bedürfnisse anpasst:
    Code:
    arduino.Upload = avrdude -pm328p -cstk500v1 -P$(HAIKU_PORT) -b57600 -Uflash:w:$(HAIKU_OUTPUT):a
    Bei mir funktioniert genau das mit dem Duemilanove.
    (Wenn ich das richtig verstehe nutzen die ARDUINO Tools unter der Haube auch avrdude. Vielleicht geht sogar
    Code:
    arduino.Upload = avrdude -pm328p -carduino -P$(HAIKU_PORT) -b57600 -Uflash:w:$(HAIKU_OUTPUT):a
    )

    Deine I2C Lösung für den Arduino ist z.Zt. in C geschrieben? Und du möchtest diese nach JAVA migrieren? Ist das der Hintergrund für Dein Interesse an HaikuVM?


    @kaijoe,
    ich kenne deinen Selbstbau nicht. Aber wenn du ihn heute (ohne HaikuVM) flashen kannst - ich nehme an mit avrdude - reicht das. D.h. du brauchst für HaikuVM keine 'Arduino Uno Firmware auf dem ATMega328P' und keine 'Arduino Software' um in JAVA programmieren zu können
    Meine Empfehlung:
    Kopiere in der Datei 'HaikuVM.properties' den Abschnitt arduino.* nach kaijoe.* . Im neuen kaijoe.* Abschnitt kannst du dann alles spezifisch an deinen Selbstbau anpassen z.B.:
    Code:
    kaijoe.Clock = 20000000
    (Falls du abweichend einen 20Mhz Quarz nutzt.)
    Wenn du dann beim Arbeiten dem HaikuVM Handbuch folgst, änderst du überall wo "--Config arduino" steht auf "--Config kaijoe" ab.


    @janvp, @kaijoe, --> Zusammengefasst
    HaikuVM nutzt zum flashen im Prinzip 'avrdude'. Dies ist aber in der Datei 'HaikuVM.properties' beliebig konfigurierbar. (So ist darin z.B. für den ASURO, das dort mitgelieferte flash Tool 'ASUROFlash155' konfiguriert.)

    Auf euer Feedback oder Fragen bin ich gespannt.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    25.01.2013
    Beiträge
    12
    Meine ersten Erfahrungen:

    Zuerst einmal, ich besitze einen Arduino UNO SMD R2 und HaikuVM 1.0.1.
    Deine Anleitung für Linux ist sehr gut verständlich. Ich habe sie auf Ubuntu 12.10 und leicht verändert auf Mac OS X Mountain Lion ausprobiert.
    Leider habe ich immer zwei Probleme bemerkt:

    Nach dem Aufruf von haikuupload habe ich immer "stk500 Programmer is not responding" angezeigt bekommen. Nach ein paar Recherchen hab ich rausgefunden, dass ich die Baudrate von 57600 auf 115200 ändern muss. Jetzt bekomme ich diese Fehlermeldung nicht mehr.

    Aber leider schlägt haikulink davor immer fehl. Hier Die Ausgabe:

    Code:
    whiteapple:arduino jan$ /Users/jan/haikuVM/bin/haikulink -v --Config arduino -o BlinkWithThread.hex /Users/jan/haikuVM/examples/src/main/java/arduino/tutorial/BlinkWithThread
    #
    #
    #
    #############################################################
    # generating c files
    #############################################################
    included; haiku.avr.lib.arduino.HaikuMicroKernelEx.main([Ljava/lang/String;)V
    included:   haiku.avr.lib.arduino.ArduinoLib.init()V
    included:     haiku.avr.AVRDefines.sei()V
    included#       haiku.avr.AVRDefines.<clinit>()V
    included:     haiku.avr.AVRDefines._BV(I)I
    included:   haiku.vm.MicroKernel.clinitHaikuMagic()V
    included:   haiku.avr.lib.arduino.HaikuMicroKernelEx.init()V
    included:   arduino.tutorial.BlinkWithThread.main([Ljava/lang/String;)V
    included:     haiku.avr.lib.arduino.WProgram.pinMode(BB)V
    included:     arduino.tutorial.BlinkWithThread.<init>()V
    virtual :     start()V
    included#     arduino.tutorial.BlinkWithThread.<clinit>()V
    included#       java.lang.Thread.start()V
    included:       java.lang.Thread.fork()I
    virtual :       run()V
    virtual :       stop()V
    included#       java.lang.Thread.run()V
    included#       java.lang.Thread.stop()V
    included:       java.lang.Thread.setStateAndSwitch(I)I
    virtual :   toString()Ljava/lang/String;
    included#     java.lang.Throwable.toString()Ljava/lang/String;
    virtual :   println(Ljava/lang/String;)V
    included#     java.io.PrintStream.println(Ljava/lang/String;)V
    virtual :     print(Ljava/lang/String;)V
    virtual :     print(C)V
    included#     java.io.PrintStream.print(C)V
    virtual :     write(I)V
    included:   java.lang.Thread.currentThread()Ljava/lang/Thread;
    included# java.lang.String.toString()Ljava/lang/String;
    #### rescan because new virtuals where found
    included:   haiku.avr.lib.arduino.HaikuMicroKernelEx$1.<init>()V
    included:     java.io.OutputStream.<init>()V
    included#     haiku.avr.lib.arduino.HaikuMicroKernelEx$1.write(I)V
    included:   java.io.PrintStream.<init>(Ljava/io/OutputStream;)V
    included:   haiku.avr.lib.arduino.HaikuMicroKernelEx$2.<init>()V
    included:     java.io.InputStream.<init>()V
    included:       java.lang.Object.<init>()V
    included#   java.lang.Object.toString()Ljava/lang/String;
    included:   java.lang.System.identityHashCode(Ljava/lang/Object;)I
    included:     java.lang.System.getDataAddress(Ljava/lang/Object;)I
    included:   java.lang.StringBuilder.<init>(Ljava/lang/String;)V
    included:     java.lang.StringBuilder.<init>()V
    virtual :     append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    included#     java.lang.StringBuilder.toString()Ljava/lang/String;
    included:     java.lang.String.<init>([C)V
    included#     java.lang.StringBuilder.append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    virtual :   append(I)Ljava/lang/StringBuilder;
    included:   java.lang.Thread.<init>()V
    included#   arduino.tutorial.BlinkWithThread.run()V
    included:   haiku.avr.lib.arduino.WProgram.digitalWrite(BB)V
    included:   haiku.avr.lib.arduino.WProgram.delay(J)V
    included:   java.lang.Thread.nap(J)V
    included:   java.lang.System.currentTimeMillis()J
    included#   java.io.PrintStream.print(Ljava/lang/String;)V
    virtual :   charAt(I)C
    virtual :   length()I
    included#   java.lang.String.length()I
    included#   java.lang.String.charAt(I)C
    #### rescan because new virtuals where found
    included#   java.lang.StringBuilder.append(I)Ljava/lang/StringBuilder;
    included:   java.lang.String.valueOf(I)Ljava/lang/String;
    #### rescan because new virtuals where found
    included:   java.lang.String.valueOf(C)Ljava/lang/String;
    #### rescan because new virtuals where found
    included:   java.lang.String.<init>(C)V
    #### rescan because new virtuals where found
    #################### closure complete!
    
    
    Effective configuration for 'arduino':
      Target = atmega328p
      MemorySize = 1540
      InitialMainThreadStackSize = 142
      InitialOtherThreadStackSize = 45
      Mode = HAIKU_16_32
      Char = HAIKU_CHAR_8
      InternalExceptionEnable = NullPointerException | NoSuchMethodError | OutOfMemoryError | ClassCastException | VirtualMachineError
      InternalExceptionThrow = 0
      Threads = 1
      Extension = hex
      Clock = 16000000
      APP_NAME = BlinkWithThread
      VM_BASE = ../../haikuVM
      APP_BASE = /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/.
      CC_OPT = $(HAIKU_CFLAGS) -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -ffunction-sections -fdata-sections -mmcu=$(HAIKU_TARGET) -DF_CPU=$(HAIKU_CLOCK)UL -MMD -MP
      Upload = avrdude -pm328p -cstk500v1 -P$(HAIKU_PORT) -b115200 -F -Uflash:w:$(HAIKU_OUTPUT):a
      MicroKernel = haiku.avr.lib.arduino.HaikuMicroKernelEx
      Config = arduino
      IncrementalGCSlice = 10
      Extends = AVR
      GC = HAIKU_StopTheWorldGC
      Output = BlinkWithThread.hex
      CFLAGS = 
      Port = /dev/tty.usbmodem1d171
      CLIBS = 
      HAIKUVM4C = ./haikuVM
      LDFLAGS = 
    
    link > haiku/avr/lib/arduino/HaikuMicroKernelEx from /Users/jan/haikuVM/bin/../lib/haikuvm/bootstrap.jar
    getProperty('InvokeShort')returned null
      const class_t haiku_avr_lib_arduino_HaikuMicroKernelEx__class PROGMEM = {
    	& haiku_vm_MicroKernel__class,
    	sizeof(haiku_avr_lib_arduino_HaikuMicroKernelEx),
    	0,
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/haiku/avr/lib/arduino/HaikuMicroKernelEx.c
    
    link > haiku/vm/MicroKernel from /Users/jan/haikuVM/bin/../lib/haikuvm/bootstrap.jar
      const class_t haiku_vm_MicroKernel__class PROGMEM = {
    	& java_lang_Object__class,
    	sizeof(haiku_vm_MicroKernel),
    	0,
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/haiku/vm/MicroKernel.c
    
    link > java/lang/Object from /Users/jan/haikuVM/bin/../lib/haikuvm/haikuRT.jar
      const class_t java_lang_Object__class PROGMEM = {
    	NULL,
    	sizeof(java_lang_Object),
    	1,
    	{
    		{MSG_toString___Ljava_lang_String, (ByteCode *)(&java_lang_Object_toString_Ljava_lang_String)},
    	}
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/java/lang/Object.c
    
    link > java/lang/System from /Users/jan/haikuVM/bin/../lib/haikuvm/haikuRT.jar
      const class_t java_lang_System__class PROGMEM = {
    	& java_lang_Object__class,
    	sizeof(java_lang_System),
    	0,
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/java/lang/System.c
    
    link > java/io/PrintStream from /Users/jan/haikuVM/bin/../lib/haikuvm/haikuRT.jar
      const class_t java_io_PrintStream__class PROGMEM = {
    	& java_lang_Object__class,
    	sizeof(java_io_PrintStream),
    	3,
    	{
    		{MSG_print__C_V, (ByteCode *)(&java_io_PrintStream_print_CV)},
    		{MSG_print__Ljava_lang_String__V, (ByteCode *)(&java_io_PrintStream_print_Ljava_lang_String_V)},
    		{MSG_println__Ljava_lang_String__V, (ByteCode *)(&java_io_PrintStream_println_Ljava_lang_String_V)},
    	}
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/java/io/PrintStream.c
    
    link > java/lang/String from /Users/jan/haikuVM/bin/../lib/haikuvm/haikuRT.jar
      const class_t java_lang_String__class PROGMEM = {
    	& java_lang_Object__class,
    	sizeof(java_lang_String),
    	3,
    	{
    		{MSG_charAt__I_C, (ByteCode *)(&java_lang_String_charAt_IC)},
    		{MSG_length___I, (ByteCode *)(&java_lang_String_length_I)},
    		{MSG_toString___Ljava_lang_String, (ByteCode *)(&java_lang_String_toString_Ljava_lang_String)},
    	}
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/java/lang/String.c
    
    link > java/lang/StringBuilder from /Users/jan/haikuVM/bin/../lib/haikuvm/haikuRT.jar
      const class_t java_lang_StringBuilder__class PROGMEM = {
    	& java_lang_Object__class,
    	sizeof(java_lang_StringBuilder),
    	3,
    	{
    		{MSG_append__I_Ljava_lang_StringBuilder, (ByteCode *)(&java_lang_StringBuilder_append_ILjava_lang_StringBuilder)},
    		{MSG_append__Ljava_lang_String__Ljava_lang_StringBuilder, (ByteCode *)(&java_lang_StringBuilder_append_Ljava_lang_String_Ljava_lang_StringBuilder)},
    		{MSG_toString___Ljava_lang_String, (ByteCode *)(&java_lang_StringBuilder_toString_Ljava_lang_String)},
    	}
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/java/lang/StringBuilder.c
    
    link > java/io/OutputStream from /Users/jan/haikuVM/bin/../lib/nxt/classes.jar
      const class_t java_io_OutputStream__class PROGMEM = {
    	& java_lang_Object__class,
    	sizeof(java_io_OutputStream),
    	0,
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/java/io/OutputStream.c
    
    link > java/io/IOException from /Users/jan/haikuVM/bin/../lib/nxt/classes.jar
      const class_t java_io_IOException__class PROGMEM = {
    	& java_lang_Exception__class,
    	sizeof(java_io_IOException),
    	0,
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/java/io/IOException.c
    
    link > java/lang/Exception from /Users/jan/haikuVM/bin/../lib/nxt/classes.jar
      const class_t java_lang_Exception__class PROGMEM = {
    	& java_lang_Throwable__class,
    	sizeof(java_lang_Exception),
    	0,
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/java/lang/Exception.c
    
    link > java/lang/Throwable from /Users/jan/haikuVM/bin/../lib/haikuvm/haikuRT.jar
      const class_t java_lang_Throwable__class PROGMEM = {
    	& java_lang_Object__class,
    	sizeof(java_lang_Throwable),
    	1,
    	{
    		{MSG_toString___Ljava_lang_String, (ByteCode *)(&java_lang_Throwable_toString_Ljava_lang_String)},
    	}
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/java/lang/Throwable.c
    
      PREPROCESSING haikuReleaseLock: java.lang.Thread.haikuReleaseLock(Ljava/lang/Object;)V
    link > java/lang/Thread from /Users/jan/haikuVM/bin/../lib/haikuvm/haikuRT.jar
      const class_t java_lang_Thread__class PROGMEM = {
    	& java_lang_Object__class,
    	sizeof(java_lang_Thread),
    	3,
    	{
    		{MSG_run___V, (ByteCode *)(&java_lang_Thread_run_V)},
    		{MSG_start___V, (ByteCode *)(&java_lang_Thread_start_V)},
    		{MSG_stop___V, (ByteCode *)(&java_lang_Thread_stop_V)},
    	}
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/java/lang/Thread.c
    
    link > java/lang/Runnable from /Users/jan/haikuVM/bin/../lib/nxt/classes.jar
      const class_t java_lang_Runnable__class PROGMEM = {
    	& java_lang_Object__class,
    	sizeof(java_lang_Runnable),
    	0,
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/java/lang/Runnable.c
    
    link > haiku/avr/lib/arduino/HaikuMicroKernelEx$1 from /Users/jan/haikuVM/bin/../lib/haikuvm/bootstrap.jar
      const class_t haiku_avr_lib_arduino_HaikuMicroKernelEx_1__class PROGMEM = {
    	& java_io_OutputStream__class,
    	sizeof(haiku_avr_lib_arduino_HaikuMicroKernelEx_1),
    	1,
    	{
    		{MSG_write__I_V, (ByteCode *)(&haiku_avr_lib_arduino_HaikuMicroKernelEx_1_write_IV)},
    	}
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/haiku/avr/lib/arduino/HaikuMicroKernelEx$1.c
    
    link > haiku/avr/lib/arduino/HaikuMicroKernelEx$2 from /Users/jan/haikuVM/bin/../lib/haikuvm/bootstrap.jar
      const class_t haiku_avr_lib_arduino_HaikuMicroKernelEx_2__class PROGMEM = {
    	& java_io_InputStream__class,
    	sizeof(haiku_avr_lib_arduino_HaikuMicroKernelEx_2),
    	0,
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/haiku/avr/lib/arduino/HaikuMicroKernelEx$2.c
    
    link > java/io/InputStream from /Users/jan/haikuVM/bin/../lib/haikuvm/haikuRT.jar
      const class_t java_io_InputStream__class PROGMEM = {
    	& java_lang_Object__class,
    	sizeof(java_io_InputStream),
    	0,
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/java/io/InputStream.c
    
    link > haiku/avr/lib/arduino/ArduinoLib from /Users/jan/haikuVM/bin/../lib/haikuvm/bootstrap.jar
      const class_t haiku_avr_lib_arduino_ArduinoLib__class PROGMEM = {
    	& haiku_avr_AVRDefines__class,
    	sizeof(haiku_avr_lib_arduino_ArduinoLib),
    	0,
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/haiku/avr/lib/arduino/ArduinoLib.c
    
    link > haiku/avr/AVRDefines from /Users/jan/haikuVM/bin/../lib/haikuvm/bootstrap.jar
      const class_t haiku_avr_AVRDefines__class PROGMEM = {
    	& java_lang_Object__class,
    	sizeof(haiku_avr_AVRDefines),
    	0,
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/haiku/avr/AVRDefines.c
    
    link > arduino/tutorial/BlinkWithThread from /Users/jan/haikuVM/examples/src/main/java//arduino/tutorial/BlinkWithThread.class
      const class_t arduino_tutorial_BlinkWithThread__class PROGMEM = {
    	& java_lang_Thread__class,
    	sizeof(arduino_tutorial_BlinkWithThread),
    	1,
    	{
    		{MSG_run___V, (ByteCode *)(&arduino_tutorial_BlinkWithThread_run_V)},
    	}
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/arduino/tutorial/BlinkWithThread.c
    
    link > haiku/avr/lib/arduino/WProgram from /Users/jan/haikuVM/bin/../lib/haikuvm/bootstrap.jar
      const class_t haiku_avr_lib_arduino_WProgram__class PROGMEM = {
    	& haiku_avr_lib_arduino_ArduinoLib__class,
    	sizeof(haiku_avr_lib_arduino_WProgram),
    	0,
      };
    into   /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/haiku/avr/lib/arduino/WProgram.c
    
    #### rescan because new virtuals where found
    #################### closure complete!
    
    
    #### rescan because new virtuals where found
    #################### closure complete!
    
    
    totalMethods=      49
    totalBClength=     1050
    totalConstLength=  260
    totalClassesLength=216
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./bootloaders/atmega
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./bootloaders/atmega8
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./bootloaders/bt
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./bootloaders/caterina
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./bootloaders/lilypad/src
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./bootloaders/optiboot
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./bootloaders/stk500v2
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./cores/arduino
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./firmwares/arduino-usbdfu
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./firmwares/arduino-usbserial
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuC
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/arduino/tutorial
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/haiku/avr/lib/arduino
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/haiku/avr
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/haiku/vm
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/java/io
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuJava/java/lang
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuVM/native/haiku/vm
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuVM/native/java/lang
    /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/./haikuVM
    #############################################################
    # generated c files
    #############################################################
    #
    #
    #
    #############################################################
    # cross compiling
    #############################################################
    #
    #
    #
    Building file: ../../bootloaders/atmega/ATmegaBOOT_168.c
    Invoking: AVR Compiler
    avr-gcc   -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000UL -MMD -MP -I"/Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/." -I"../../haikuVM" -MF"bootloaders/atmega/ATmegaBOOT_168.d" -MT"bootloaders/atmega/ATmegaBOOT_168.d" -c -o"bootloaders/atmega/ATmegaBOOT_168.o" "../../bootloaders/atmega/ATmegaBOOT_168.c"
    ../../bootloaders/atmega/ATmegaBOOT_168.c: In function 'main':
    ../../bootloaders/atmega/ATmegaBOOT_168.c:425:12: error: 'NUM_LED_FLASHES' undeclared (first use in this function)
    ../../bootloaders/atmega/ATmegaBOOT_168.c:425:12: note: each undeclared identifier is reported only once for each function it appears in
    ../../bootloaders/atmega/ATmegaBOOT_168.c:586:11: error: 'EEWE' undeclared (first use in this function)
    ../../bootloaders/atmega/ATmegaBOOT_168.c: In function 'getch':
    ../../bootloaders/atmega/ATmegaBOOT_168.c:975:15: error: 'MAX_TIME_COUNT' undeclared (first use in this function)
    make: *** [bootloaders/atmega/ATmegaBOOT_168.o] Error 1
    #############################################################
    # error while cross compiling
    #############################################################
    whiteapple:arduino jan$
    Ich vermute mal, dass etwas mit "NUM_LED_FLASHES", "EEWE" und "MAX_TIME_COUNT" noch nicht ganz funktioniert.

    Also ich hab einen NXT mit leJOS und einen Arduino UNO. Diese wollte ich verbinden und bei ein paar Recherchen habe ich HaikuVM zufällig entdeckt. Eigentlich hat HaikuVM nichts mit meinem ursprünglichen Projekt zu tun, aber ich find HaikuVM sehr interessant und wollte es einfach mal ausprobieren. Natürlich werde ich jetzt versuchen, den Code, den ich für den Arduino geschrieben, habe auch in Java zu verwirklichen.

    LG Jan

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

    danke für das Feedback.

    1) Ach, läßt sich der 'Arduino UNO SMD R2' nur mit 115200 baud flashen? Das wußte ich gar nicht! Ist das auch bei den orginalen ARDUINO Tools für den 'Arduino UNO SMD R2' so?
    Zusatzfrage: Läuft 'Arduino UNO SMD R2' auch mit 16Mhz? Wenn nein, musst du das auch in der Datei 'HaikuVM.properties' anpassen.

    2) Es ist zwar nett wenn du schreibst "Deine Anleitung für Linux ist sehr gut verständlich.", aber ist sie wohl doch nicht!
    Denn wenn ich deine Ausgabe richtig deute hast du
    • /Users/jan/haikuVM/bin/haikulink

    in der aktuellen Directory:
    • /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/

    gestartet. (Was ist das überhaupt für eine Directory?)
    In der Anleitung steht aber, dass man ausgehend von
    • /home/bob

    dies in
    • cd haikuVM/myCProject

    ausführen soll. Also übersetzt für dein System und deinen User in
    • /Users/jan/haikuVM/myCProject

    Probier das mal. Und ich werde diesen Teil der Anleitung verbessern.

    Erklärung:
    Haikulink sucht und kompiliert rekursiv alle *.c und *.h Dateien die es in der aktuellen Directory findet. In
    • /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/

    scheint es schon einige *.c und *.h Dateien zu geben die nichts mit HaikuVM zu tun haben. (Ich sehe in deiner Ausgabe z.B. die fremde Datei './bootloaders/atmega/ATmegaBOOT_168.c'.) In denen befinden sich offenbar "NUM_LED_FLASHES", "EEWE" und "MAX_TIME_COUNT", die auch nichts mit HaikuVM zu tun haben und bleiben folglich "undeclared".

    3) Soll der Arduino UNO bei der Kommunikation mit NXT als I2C master oder slave laufen?


    PS:
    Die fremde Directory
    • /Applications/Development/Arduino.app/Contents/Resources/Java/hardware/arduino/

    wird jetzt durch deinen Lauf von haikulink "verschmutzt" sein. Tipp, bereinige diese vorsichtshalber indem du die neu entstanden HaikuVM Directories:
    • haikuC
    • haikuVM
    • haikuJava
    • target

    wieder löschst.
    Geändert von haikuvm (07.04.2013 um 09:48 Uhr)

  7. #7
    kaijoe
    Gast
    Hallo,

    ich habe jetzt mal versucht das AVR Blink Beispiel auf den ATMega zu kopieren.
    Ich habe folgenden Aufruf verwendet:

    C:\haikuVM\myCProject>c:\haikuVM\bin\haiku -v --Config kaijoe -o blink.hex C:\haikuVM\examples\src\main\java\avr\tutorial\Bli nk.java

    Die Config dazu sieht wie folgt aus:

    #
    # Kaijoe: main(); init(); 57600 baud; System.in/out
    #
    #
    kaijoe.arduino.Extends = AVR
    kaijoe.Target = atmega328p
    kaijoe.MemorySize = 1540
    kaijoe.Clock = 16000000
    kaijoe.MicroKernel = haiku.avr.lib.arduino.HaikuMicroKernelEx
    # a lot of \ are needed just to get the following:
    # avrdude -pm328p -cstk500v1 -P\\\.\\com17 -b57600 -Uflash:w:SimpleThreading.hex:a
    # ugly but works:
    #arduino.Port = \\\\\\.\\com17
    kaijoe.Port = USB
    kaijoe.Upload = avrdude -pm328p -cstk500v1 -P$(HAIKU_PORT) -b57600 -Uflash:w:$(HAIKU_OUTPUT):a

    Da ich einen AVRISP MKII verwende, habe ich keine COM-Schnittstelle, deshalb habe ich USB eingegeben.
    Wenn ich nun Haiku aufrufe, bekomme ich folgende Fehlermeldung:

    ################################################## ###########
    # generating c files
    ################################################## ###########
    included; haiku.avr.lib.arduino.HaikuMicroKernelEx.main([Ljava/lang/StringV
    getProperty('InternalExceptionThrow')returned null
    Exception in thread "main" java.lang.NullPointerException
    at haikuvm.pc.tools.Haikufy.supre#################### ###################
    ssExceptionSupport(Haikufy.java:395)
    at haikuvm.pc.tools.Closure.collectFoos(Closure.java: 93)
    at haikuvm.pc.tools.Closure.collectClass(Closure.java :5
    at haikuvm.pc.tools.Closure.collect#Fo#os#(##Cl#os#ur e#.ja#v#a:#131#)#
    m #at# #h#a#i#k#u#v
    # error while g.penerating c fc.tools.Closure.collectClass(Closureiles
    #.java:5
    at haikuvm.pc.tools.Closure.root##################### ###################
    ##################(#C#
    losure.java:35)
    at haikuvm.pc.tools.HaikuVM.haikulink(HaikuVM.java:29 5)
    at haikuvm.pc.tools.HaikuVM.main(HaikuVM.java:90)
    c:\haikuVM\bin\../bin/haikuupload blink.hex
    Das System kann den angegebenen Pfad nicht finden.
    #ake: *** No rule to make target #`#u#p#l#o#a#d#'#.# # #S#t#o#p#.#
    ###########################################
    # error while uploading files
    ################################################## ###########

    Was mache ich falsch. Liegt das daran, dass ich keinen COM-Port habe?


    Gruß
    Kai

Ä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, 17:31
  2. ARDUINO ARDUINO l293D + MegaservoLib
    Von m1ch15inner im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 2
    Letzter Beitrag: 11.07.2011, 12:50
  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. (LEGO MINDSTORMS) lejos Klassen Facharbeit
    Von George Dorn im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 0
    Letzter Beitrag: 01.03.2006, 17:29
  5. lego, lejos, logitech ;)
    Von maze2k im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 7
    Letzter Beitrag: 21.05.2005, 23:21

Stichworte

Berechtigungen

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

LiFePO4 Speicher Test