-         
Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 49

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

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    25.01.2013
    Beiträge
    12
    Anzeige

    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 14:07 Uhr)

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    17.12.2012
    Beiträge
    27
    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

  3. #13
    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.

  4. #14
    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

  5. #15
    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 08:48 Uhr)

  6. #16
    Neuer Benutzer Öfters hier
    Registriert seit
    17.12.2012
    Beiträge
    27
    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

  7. #17
    Neuer Benutzer Öfters hier
    Registriert seit
    28.10.2012
    Beiträge
    26
    Hallo kaijoe,

    danke für das Feedback.

    1) Welche 'Config' meinst du? HaikuVM kennt nur die Konfigurationsdatei 'HaikuVM.properties'. Ich gehe mal davon aus, dass du die mit "Config" meinst.

    2) Du schreibst "Die Config dazu sieht wie folgt aus:". Was ich da sehe ist eigentlich viel zu wenig. Wo bleibt der Rest von 'HaikuVM.properties', z.B. der Abschnitt avr.* auf den du dich mit der Zeile "kaijoe.arduino.Extends = avr" beziehst? Hast du den gelöscht? Ich gehe jetzt genauer davon aus, dass du mit "Config" wahrscheinlich deinen neuen Abschnitt kaijoe.* innerhalb der vorhandenen Datei 'HaikuVM.properties' meinst.

    2a) Statt
    • kaijoe.arduino.Extends = AVR

    sollte es
    • kaijoe.Extends = AVR

    heißen.

    2b) Die Zeile
    • kaijoe.Port = USB

    kommt mir komisch vor. Welches Windows nutzt du? Meines kann mit der Portangabe "usb" nichts anfangen. Wie, mit welcher Portangabe oder Serial Port, hast du denn deinen Selbstbau ATMega328P bisher geflash?

    3) Deine Ausgabe vom Aufruf von "c:\haikuVM\bin\haiku" ist für mich zu kurz und unleserlich. Da kann ich dann nur schlecht weiter helfen. Mach's wie das janvp oben gemacht hat: Kopiere die Ausgabe möglichst vollständig und setzte sie in ein Code-tag.

    Bei weiteren Fragen, nur her damit!

  8. #18
    Neuer Benutzer Öfters hier
    Registriert seit
    25.01.2013
    Beiträge
    12
    Zu 1: Der Arduino UNO SMD R2 läuft auch mit 16mhz.

    Zu 2: Da hab ich wohl etwas übersehen. Leider bekomme ich immer noch einen Fehler, wenn ich es genauso wie beschrieben mache.

    Code:
    whiteapple:myCProject 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 = /Users/jan/haikuVM/myCProject/.
      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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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   /Users/jan/haikuVM/myCProject/./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
    /Users/jan/haikuVM/myCProject/./haikuC
    /Users/jan/haikuVM/myCProject/./haikuJava/arduino/tutorial
    /Users/jan/haikuVM/myCProject/./haikuJava/haiku/avr/lib/arduino
    /Users/jan/haikuVM/myCProject/./haikuJava/haiku/avr
    /Users/jan/haikuVM/myCProject/./haikuJava/haiku/vm
    /Users/jan/haikuVM/myCProject/./haikuJava/java/io
    /Users/jan/haikuVM/myCProject/./haikuJava/java/lang
    /Users/jan/haikuVM/myCProject/./haikuVM/native/haiku/vm
    /Users/jan/haikuVM/myCProject/./haikuVM/native/java/lang
    /Users/jan/haikuVM/myCProject/./haikuVM
    #############################################################
    # generated c files
    #############################################################
    #
    #
    #
    #############################################################
    # cross compiling
    #############################################################
    #
    #
    #
    Building file: ../../haikuC/haikuConfig.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"/Users/jan/haikuVM/myCProject/." -I"../../haikuVM" -MF"haikuC/haikuConfig.d" -MT"haikuC/haikuConfig.d" -c -o"haikuC/haikuConfig.o" "../../haikuC/haikuConfig.c"
    In file included from /Users/jan/haikuVM/myCProject/./haikuC/haikuConfig.h:1:0,
                     from ../../haikuC/haikuConfig.c:1:
    ../../haikuVM/haikuJ2C.h:355:20: error: expected declaration specifiers or '...' before '*' token
    ../../haikuVM/haikuJ2C.h:359:2: error: unknown type name 'BytecodeFoo'
    ../../haikuVM/haikuJ2C.h:364:9: error: unknown type name 'BytecodeFoo'
    ../../haikuVM/haikuJ2C.h:601:1: error: unknown type name 'BytecodeFoo'
    In file included from ../../haikuC/haikuConfig.c:2:0:
    ../../haikuVM/Bytecodes.h: In function 'OPF_ANEWARRAY':
    ../../haikuVM/Bytecodes.h:107:10: warning: assignment from incompatible pointer type [enabled by default]
    ../../haikuVM/Bytecodes.h: In function 'OPF_CHECKCAST':
    ../../haikuVM/Bytecodes.h:256:19: warning: comparison between pointer and integer [enabled by default]
    ../../haikuVM/Bytecodes.h:257:3: warning: passing argument 2 of 'throwException' makes integer from pointer without a cast [enabled by default]
    ../../haikuVM/haikuJ2C.h:547:13: note: expected 'jint' but argument is of type 'jclass'
    ../../haikuVM/Bytecodes.h: In function 'OPF_IFNONNULL':
    ../../haikuVM/Bytecodes.h:1409:2: warning: passing argument 1 of 'compare' makes integer from pointer without a cast [enabled by default]
    ../../haikuVM/haikuJ2C.h:534:13: note: expected 'jint' but argument is of type 'jobject'
    ../../haikuVM/Bytecodes.h: In function 'OPF_IFNULL':
    ../../haikuVM/Bytecodes.h:1419:2: warning: passing argument 1 of 'compare' makes integer from pointer without a cast [enabled by default]
    ../../haikuVM/haikuJ2C.h:534:13: note: expected 'jint' but argument is of type 'jobject'
    ../../haikuVM/Bytecodes.h: In function 'OPF_IINC':
    ../../haikuVM/Bytecodes.h:1429:17: warning: initialization from incompatible pointer type [enabled by default]
    ../../haikuVM/Bytecodes.h: In function 'OPF_IINC1':
    ../../haikuVM/Bytecodes.h:1439:17: warning: initialization from incompatible pointer type [enabled by default]
    ../../haikuVM/Bytecodes.h: In function 'OPF_INSTANCEOF':
    ../../haikuVM/Bytecodes.h:1517:2: warning: passing argument 2 of 'instanceOf' makes pointer from integer without a cast [enabled by default]
    ../../haikuVM/haikuJ2C.h:554:13: note: expected 'jclass' but argument is of type 'int16_t'
    ../../haikuVM/Bytecodes.h: In function 'OPF_INVOKEINTERFACE':
    ../../haikuVM/Bytecodes.h:1529:18: warning: assignment from incompatible pointer type [enabled by default]
    ../../haikuVM/Bytecodes.h:1529:38: warning: assignment from incompatible pointer type [enabled by default]
    ../../haikuVM/Bytecodes.h:1531:2: warning: passing argument 1 of 'getMethod' from incompatible pointer type [enabled by default]
    ../../haikuVM/haikuJ2C.h:538:15: note: expected 'jobject' but argument is of type 'unsigned char *'
    ../../haikuVM/Bytecodes.h:1532:2: warning: implicit declaration of function 'invoke' [-Wimplicit-function-declaration]
    ../../haikuVM/Bytecodes.h: In function 'OPF_LDC_C':
    ../../haikuVM/Bytecodes.h:1847:10: warning: assignment makes pointer from integer without a cast [enabled by default]
    ../../haikuVM/Bytecodes.h: In function 'OPF_LOOKUPSWITCH':
    ../../haikuVM/Bytecodes.h:2039:6: warning: assignment makes pointer from integer without a cast [enabled by default]
    ../../haikuVM/Bytecodes.h:2043:8: warning: assignment makes pointer from integer without a cast [enabled by default]
    ../../haikuVM/Bytecodes.h: In function 'OPF_MULTIANEWARRAY':
    ../../haikuVM/Bytecodes.h:2221:2: warning: passing argument 1 of 'multiArray' from incompatible pointer type [enabled by default]
    ../../haikuVM/haikuJ2C.h:537:13: note: expected 'struct <anonymous> **' but argument is of type 'struct heap_t **'
    ../../haikuVM/Bytecodes.h: In function 'OPF_NEWARRAY':
    ../../haikuVM/Bytecodes.h:2242:10: warning: assignment from incompatible pointer type [enabled by default]
    ../../haikuVM/Bytecodes.h: In function 'OPF_TABLESWITCH':
    ../../haikuVM/Bytecodes.h:2473:8: warning: assignment makes pointer from integer without a cast [enabled by default]
    ../../haikuVM/Bytecodes.h:2478:5: warning: assignment makes pointer from integer without a cast [enabled by default]
    In file included from ../../haikuC/haikuConfig.c:2:0:
    ../../haikuVM/Bytecodes.h: In function 'OPF_WIINC':
    ../../haikuVM/Bytecodes.h:2499:17: warning: initialization from incompatible pointer type [enabled by default]
    ../../haikuC/haikuConfig.c: At top level:
    ../../haikuC/haikuConfig.c:590:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
    ../../haikuC/haikuConfig.c:591:2: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
    ../../haikuC/haikuConfig.c:650:18: error: variable 'functionTable' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
    make: *** [haikuC/haikuConfig.o] Error 1
    #############################################################
    # error while cross compiling
    #############################################################
    whiteapple:myCProject jan$
    Wenn du irgendwelche Dateien wie haikuConfig haben möchtest, musst du es sagen, weil ich nicht so richtig weiß was wichtig ist.

    Zu 3: Momentan läuft der Arduino als Slave und ich möchte dies auch weiter so beibehalten.

    @kaijoe So eine ähnliche Ausgabe habe ich auch einmal bekommen. Nach dem Aufruf von dos2unix hat sich dies aber erledigt. Da du aber Windows benutzt kann ich nicht sagen, ob es bei dir auch so funktioniert.

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

    ich entnehme deiner Ausgabe zwei Probleme:

    1)
    • ../../haikuVM/haikuJ2C.h:355:20: error: expected declaration specifiers or '...' before '*' token

    Ändere doch bitte in '/Users/jan/haikuVM/haikuVM/haikuJ2C.h' die Zeile 355
    • typedef prog_void (* BytecodeFoo)() ;

    in
    • typedef void (* BytecodeFoo)() ;

    Ich habe recherchiert und gefunden, dass für AVR "prog_void typedef is now deprecated" gilt. Vielleicht liegt hier das Problem. Bei mir tut's allerdings. Deshalb die Frage welche avr-gcc Version du hast? Bei kommt folgendes:
    Code:
    genom2@unx1:~/haikuVM/myCProject$ avr-gcc --version
    avr-gcc (GCC) 4.5.3
    Copyright (C) 2010 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    2)
    • ../../haikuC/haikuConfig.c:650:18: error: variable 'functionTable' must be const in order to be put into read-only section by means of '__attribute__((progmem))'

    Ist mir ein Rätsel, denn 'functionTable' ist genau dort als const deklariert?! Vielleicht ist das aber mit 1) behoben.


    3) Bevor du dann neu probierst lösche erst alle Directories in:
    • /Users/jan/haikuVM/myCProject

    Denn nur dann wird deine Änderung aus 1) verwendet.

  10. #20
    Neuer Benutzer Öfters hier
    Registriert seit
    17.12.2012
    Beiträge
    27
    Hallo Haikuvm,

    ich habe nicht den ganzen Output angehängt, weil das ziemlich viel.
    Ist aber nicht schlimm, da ich den Fehler beseitigt habe.
    Ich habe die Zeile kaijoe.arduino.Extends = AVR in kaijoe.Extends = AVR
    geändert und jetzt läuft es durch. Ich habe USB verwendet, da ich keinen Seriellen Port für den
    AVRISP MKII habe. Wenn man das Atmel Studio installiert, wird automatisch ein USB-Treiber installiert.
    Dieser konfiguriert den MKII so, dass er mit dem ATMel Studion einwandfrei funktioniert, aber leider keinen COM-Port
    erstellt. Dazu muss ich libusbW32 installieren, wenn ich das mache habe ich zwar einen COM-Port und die ganzen anderen Lösungen
    wie HaikuVM, Arduino und avrdude laufen dann, aber eben das ATmel Studio nicht mehr.

    Ich werde dann wohl mal libusb installieren und melde mich dann nochmal.

    Gruß
    Kai

Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte

Ä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
  •