Datum: 08.09.2005 11:08
Da hat doch tatsächlich einer eine JVM geschrieben, die auf einem ATmega8 läuft. Siehe http://www.harbaum.org/till/nanovm/ PS: Mich würde mal interessieren, wieviele bei dem Betreff dachten, ich würde nach sowas fragen und schon antworten wollten, wie unrealistisch das sei :-)
Datum: 08.09.2005 11:44
D. h. ich habe 512 Byte für das Userprogramm zur Verfügung.
Datum: 08.09.2005 11:52
Rolf: "Mich würde mal interessieren, wieviele bei dem Betreff dachten, ich würde nach sowas fragen und schon antworten wollten, wie unrealistisch das sei" Hier ist einer :-/ Hatte mir die Gegenargumente schon alle im Kopf zurecht gelegt, als ich geklickt habe :)
Datum: 08.09.2005 12:28
Ich wollte nur einen Link posten, warum das Humbug ist ... (-; Nun gut: "It is not a full Java VM, since it does not support exceptions, threads, floating point arithmetic and various other things" Aber immerhin. Kurz vor unfaßbar; ich ziehe meinen Hut!
Datum: 08.09.2005 12:54
Salve, lach ja, ich muß zugeben, auch ich hatte hier einen kleinen Flamewar erwartet, darüber, daß es überflüssig ist, auch nur einen Gedanken an soetwas utopisches zu verschwenden... tja, hab mich wohl getäuscht. :) Was den EEPROM als Bytecode-Quelle angeht... das sollte ja nun das geringste Problem sein, die Routine, die ein Byte aus dem internen EEPROM liest, durch eine zu ersetzen, die einen externen 64kx8 I²C- oder SPI-EEPROM bedient, oder gar eine SD-Karte. Also auch von meiner Seite aus: Respekt für so ein Projekt! Mark
Datum: 08.09.2005 13:32
... TJA das wollte ich auch schon mal versuchen, habe dies aber nach meinen Anfragen in diversen Foren als hoffnungslos aufgegeben. Deshalb Respekt! Achim PS.: Hat damit schon jemand gespielt?
Datum: 14.09.2005 12:01
Ich habe die letzten paar Abende daran gearbeitet, das ganze in ein benutzbares tar-Archiv zu packen. Im Prinzip müsste alles auch unter Windows nutzbar sein (WinAVR und Java gibts dort ja auch), aber sicher wird man ein wenig an den Makefiles drehen müssen. Ein oder zwei Abende brauche ich wohl noch. Aber in den nächsten Tagen werden ich alles unter GPL rauslegen, auch die Quellen der eigentlichen VM, so dass Erweiterungen Tür und Tor geöffnet ist. Bin mal gespannt, was draus wird :-) Zur Zeit läuft die VM auf dem Asuro, auf einem einfachn Atmega8-Testboad mit zwei LEDs und nativ unter Linux (prima zum Debuggen). Und ja, der Zugriff auf das EEPROM ist einigermassen zentral gekapselt, es sollte sehr simpel sein, da was anderes anzusteuern, wie zum Beispiel das Flash. Wenn man im Asuro den Mega168 nehmen würde hätte man dann 8K fürs Java-Programm, zur Zeit mache ich das ja nur deshalb nicht, weil im Flash nur noch sehr wenig Platz ist. Aber ein externes I2C-EEPROM geht z.B. genauso gut. Die Ansteuerung muss halt einfach genug sein, dass man das noch in die 8k des Mega8 bekommt. Till
Datum: 24.09.2005 09:27
Also eigentlich hab ich ja nur nach Infos über Eclipse und ATMEGA16 gesucht, aber als Java-Fan bin ich fast sprachlos. - - - !!! Ausserdem bin ich natürlich sehr gespannt, ob das auch auf dem ATmega16 läuft. 8k Bytecode sollten dann einiges an Java-Code erlauben. Weiterhin viel Erfolg wünscht Andreas
Datum: 24.09.2005 11:16
Das sollte problemlos auf dem Mega16 laufen. Die ersten Tests habe ich damals mit dem Mega128 gemacht. Es erfordert aber ein wenig AVR-Know-How, Routinen zu schreiben, die den Code aus dem Flash holen (ok, das ist noch kein Kunststück), vor allem aber Routinen, mit denen man neuen Code beim Upload im Flash ablegen kann. Ich bin gerne bereit, dabei zu assistieren. Till
Datum: 24.09.2005 21:11
Wow, respekt echt klasse. wird da vielleicht auch in kleines tut folgen? weiter so!!!
Datum: 25.09.2005 00:30
Was für ein Tutorial meinst Du? Wie man das Ding benutzt oder wie man es erweitert? Allgemein auf AVR oder z.B. Asuro-spezifisch? Ein paar Pläne in die Richtung habe ich, ich weiss aber noch nicht, ob das eher ein Buch zu Asuro wird oder ein allgemeines PDF oder was auch immer. Till
Datum: 25.09.2005 00:47
Am besten eins über AVR und JAVA, schön strukturiert und mit beispielen und praktischen anwendungen. Ich würds allgemein halten, basiere es halt auf einem einfachen m16 evolution board. Am besten als frei verfügbare PDF :) echt stark!!!
Datum: 25.09.2005 02:13
Naja, da ich garkein Mega16-Board habe steht das nicht direkt ins Haus. Bisher habe ich es nur auf dem Mega8 gemacht und das Flash als Code-Speicher zu benutzen ist wie gesagt, nicht ganz trivial. Kann gut sein, dass ich das mal mache, aber da erhoffe ich mir auch ein wenig Mitarbeit anderer Anwender. Aber wer mir einen Mega168 für meinen Asuro schickt erhöht die Wahrscheinlichkeit für passenden Flash-Routinen (die dann sehr wahrscheinlich auch auf dem Mega16 laufen) ganz ungemein. Till
Datum: 26.09.2005 11:20
Das ist eine echt gute Idee. Hast Du zufällig eine Idee, welches (ggf. Englischsprachige, man will ja nicht alles doppelt machen) Wiki dafür geeignet wäre? Till
Datum: 26.09.2005 14:58
:-) Das habe ich erwartet. Die Anfragen zu der NanoVM kommen zu mehr als der Hälfte aus nicht-deutschem Raum. Darf ich hier im Wiki daher eine snglische Seite aufmachen? Till
Datum: 26.09.2005 22:00
Hi @Till Ich kann dir auch gerne auf meinem Webspace eine Subdomain (javaavr.matwei.de?) einrichten und ein Doku-Wiki draufwerfen. Ich hab für Java auf dem AVR zwar keinen Einsatzzweck aber find das irgendwie witzig und würde das Projekt damit unterstützen. Matthias
Datum: 27.09.2005 12:16
Gratulation Till! Das Teil ist sehr sehr nett! Allerdings ist der AVR ein wenig klein, aber da der Code relativ sauber ist könnte man das ja auch auf einen ARM portieren, oder? Stellt euch einmal einen LPC2103 (oder 2106) mit einem LAN-Chip und einem MMC- oder SD- Karten Anschluß vor! Die JavaVM ist im µC-Flash, die Java classes und Daten, logs, etc könnten auf der Speicherkarte liegen und bei Bedarf ins RAM gelesen werden. Die Anwendungsmöglichkeit reichen von Haustechnik über Internet, Kamerasteuerung, Überwachungstechnik bis hin zu professioneller Automation. just an idea...
Datum: 27.09.2005 20:18
Jup das fände ich auch mal gut. Da ich ja ohnehin sehr gerne mit Java Programmiere, würde mir das sehr gefallen. Und sowas wie der aJile auf ner JStamp ist doch sehr sehr teuer und hier in DE sowieso kaum zu beschaffen. Also ne JVM auf nem kleinen ARM wie eben diesen neuen LPC's von Philips (63MIPS, 32K Flash und 8K RAM und kostet fast nix... s. http://www.mikrocontroller.net/forum/read-1-238583.html ) ... das wär schon was feines. Ein Hausbus Projekt wäre ja gleich ne nette Anwendung dafür g ;) http://www.mikrocontroller.net/forum/list-11-1.html Mal schaun - aktuell hab ich leider keine Zeit das Projekt zu unterstützen aber in ein paar wochen...
Datum: 28.09.2005 01:34
Ja, der Code ist sicher recht portabel, immerhin läuft er auch auf Linux-PCs. Unterstützung von anderen Prozessoren selbst zu machen plane ich erstmal nicht. Der nächste Schritt ist die Dokumentation und ein paar weitere native Klassen für den AVR. Die nativen Klassen sind die eigentliche Schnittstelle zur Onboard-Peripherie und für den allgemeinen AVR (also die nicht-Asuro-Lösung) gibt es bisher nur eine Port- und Timerklasse, damit ist nicht viel mehr machbar als eine Modellbahnampel oder so ... Till
Datum: 28.09.2005 05:35
Also wenn schon ein kleiner ARM, dann die neuen Atmel AT91SAM7X mit Ethernet und CAN...
Datum: 28.09.2005 16:34
Ja gut nen AT91SAM7X ist natürlich auch was feines. Weisst Du zufällig wie teuer die AT91SAM7X so sein werden? Also sicher nicht so billig wie die Philips... (~2US$ @10K) Das wäre z.B. bei sowas wie Heim Automatisierung wichtig, denn da braucht man nicht nur einen, sondern locker mal 25 Stück oder mehr. ---------------------------------------------- Aber es sind ja alles ARM Controller - da sollte es doch ziemlich einfach sein die JVM auf diverse Controller Varianten von verschiedenen Herstellern zu portieren? (eigentlich muss man ja nur nen paar Adressen vom RAM/ROM und der Peripherie anpassen) Die Befehlssätze sind doch soweit ich das gesehen hab bei allen ARM7 identisch, oder nicht? (Habe selbst noch nichts mit ARM entwickelt, will das demnächst aber mal antesten)
Datum: 30.09.2005 19:49
Als ich von der VM gehört hab, war ich hin und weg ;)
Vor allem, weil ich selber Linux User bin und ausnahmsweise mal nichts
anpassen muss bei so Sachen, da sie ja oft für Windows sind.
Nur bekomm ich das Tool nicht zum kompilieren, geschweige denn zum
laufen. Ich bekomm immer diese 8 Fehler:
NanoVMTool.java:36: cannot resolve symbol
symbol : variable Version
location: class NanoVMTool
System.out.println("NanoVMTool " + Version.version +
^
NanoVMTool.java:66: cannot resolve symbol
symbol : variable Config
location: class NanoVMTool
Config.load(args[curArg]);
^
NanoVMTool.java:70: cannot resolve symbol
symbol : variable Config
location: class NanoVMTool
Config.overwriteFileName(outputFileName);
^
NanoVMTool.java:72: cannot resolve symbol
symbol : method setClassPath (java.lang.String)
location: class java.lang.ClassLoader
ClassLoader.setClassPath(args[curArg+1]);
^
NanoVMTool.java:73: cannot resolve symbol
symbol : method load (java.lang.String)
location: class java.lang.ClassLoader
ClassLoader.load(args[curArg+2]);
^
NanoVMTool.java:76: cannot resolve symbol
symbol : method totalClasses ()
location: class java.lang.ClassLoader
ClassLoader.totalClasses() + " classes");
^
NanoVMTool.java:79: cannot resolve symbol
symbol : class UVMWriter
location: class NanoVMTool
UVMWriter writer = new UVMWriter(writeHeader);
^
NanoVMTool.java:79: cannot resolve symbol
symbol : class UVMWriter
location: class NanoVMTool
UVMWriter writer = new UVMWriter(writeHeader);
^
8 errors
make: *** [NanoVMTool.class] Error 1
Vielleicht kann mir jemand helfen.
Datum: 30.09.2005 20:01
@Andreas: Also zum einen ist im Archiv schon ein fertiges JAR in tool/NanoVMTool.jar, Du musst es also nicht unbedingt selbst neu übersetzen. Aber natürlich solltest Du es auch übersetzen können. Dazu sollte es eigentlich reichen, nach nanovm/tool/src zu wechseln und dort make einzugeben. Wenn das nicht klappt, dann frage bitte nochmal und schreibe, wie Du genau die Übersetzung startest, welche Linux-Distro mit welchem JDK Du benutzt (das sagt Dir java -version) und was sonst noch wichtig sein könnte. Till
Datum: 30.09.2005 21:21
Ich kann das jar auch nicht ausführen. Da bekomm ich immer ne Exception: "Exception in thread "main" java.lang.NoClassDefFoundError: NanoVMTool/jar" Deswegen hab ich es ja versucht das ganze mit make zu kompilieren. Das Makefile schriebt auch die Version in die Datei Version.java, nur der javac bringt dann diese 8 Fehler. Meine Distri ist Gentoo mit nem Runtime Environment in der Version 1.4.2_09
Datum: 30.09.2005 21:27
Eine englische Seite kannst du hier im Wiki natürlich gerne anlegen.
Datum: 30.09.2005 22:08
Dass Du nur ein JRE verwendest kann nicht ganz stimmen, denn bei Dir läuft der javac ja wirklich los und versucht etwas zu übersetzen. Der javac ist aber kein Teil der jre (re steht ja für runtime environment). Der javac-Compiler ist üblicherweise Teil des kompletten JDK. Bitte schreib etwas detaillierter, was Du genau versuchst. Es klingt, als würdest Du das JAR-File mit "java NanoVMTool.jar" zu starten versuchen. Das kann so nicht klappen, JAR-Files startet man mit "java -jar NanoVMTool.jar". Die Fehler, die Du beim Übersetzen hast kann ich mir gerade nicht erklären, ich bin aber tatsächlich kein Java-Profi (ehrlich, ich weiss mehr über die Java-Virtual-Maschine, als über die Sprache Java). Ggf. kann jemand anderes hier auselfen. Und wegen des Wikis: Ich habe ein neues Projekt NanoVM gestartet. Wäre prima, wenn ihr da jeweils mitarbeitet, wenn ihr zum Beispiel Probleme habt und dann deren Lösung findet und dokumentiert: http://www.mikrocontroller.net/articles/NanoVM
Datum: 30.09.2005 22:23
P.S.: Hab gerde gemerkt, dass das NanoVMTool eine Exception wirft, wenn man es ganz ohne Parameter startet. Wenn Du die "usage"-Zeile sehen willst, dann starte es mit irgendeinem Quatsch-Parameter, z.B. java -jar NanoVMTool.jar nase
Datum: 30.09.2005 22:41
Wenn ich es mit Paramter starte läufts. Ja... Das JDK hab ich auch installiert. Bin grad neu in Java, weil wir das in der Schule lernen. Alles andere kann ich aber kompilieren. Hab bisher nur mit PHP oder C# gebastelt und das ist von Grund auf verschieden in der Handhabung (vor allem C# (oder gleich .NET) und Java).
Datum: 01.10.2005 22:34
Der Fall mit keinen Parametern kann in der Methode main so abgefangen werden:
public static void main(String[] args) { if(args.length == 0) { // hier die Ausgabe des Hilfetexts } } |
mfG, ejd
Datum: 01.10.2005 22:43
Hallo, ja, danke, hatte ich inzwischen gefixt. Allerdings ist eine seperate Abfrage ja etwas unschön ... wenn schon die NanoVM kein unnötiges Byte enthalten darf, dann verschwende ich im Tool natürlich auch keinen Code. Daher ist der tatsächliche Patch noch etwas einfacher, als Dein Tipp. Aber trotzdem danke! Das ist aber noch nicht auf der Webseite. Den Fehler halte ich für so minimal, dass ich das nicht sofort hochlade. Till
Datum: 02.10.2005 21:26
Hallo, nachdem das thematisch dazupasst. Die Firma domologic hat auch so eine java-basierte GUI. Unter http://www.jcontrol.org/ Zu kaufen gibt's die auch über ELV, da ists billiger als beim Hersteller :) Ich finde aber den OpenSource Ansatz ganz toll. Brint alle vorteile mit, man ist vorallem nicht an eine HW gebunden. Wirklich genial! Mario
Datum: 03.10.2005 20:01
Was die so "klein" nennen. Dieses JControl fällt unter die gleiche Kathegorie wie viele andere "kleine" Java-Lösungen und benötigt durchaus einiges an Speicher und Rechenleistung. Selbst Geräte mit dem tausenfachen des Atmega8 (also mit 8MB Flash und 512kB RAM) fallen ja noch unter "klein", wenn man sie mit einem PC vergleicht. Die NanoVM läuft auf einem Prozessor, den man für Euro 2.50 bei jedem Elektronikhändler kaufen kann. Das war mein Ziel. Mit den doch deutlich größeren und teureren kommerziellen Lösungen wollte ich nie konkurrieren. Aber in Kombination wird's vielleicht spassig: Die NanoVM als billiger Sensorknoten und die JControl-Dinger als Bediengerät, oder so. Till
Datum: 04.10.2005 23:02
Hi, ich habe das Wiki nun schon mit einigem an Beschreibung gefüllt. Einige der schon hier diskutierten Fragen, wie zum Beispiel "kann ich auch ein externes EEPROM nehmen?" und die Sache mit der Integration eigener nativer Klassen werden dort erklärt. Ein Kapitel zur praktischen Verwendung am Beispiel des Asuro werde ich auch noch machen. Das Wiki: http://www.mikrocontroller.net/articles/NanoVM Till
Datum: 09.10.2005 18:28
Ich bekomme beim compilieren von NanoVMTool auch die folgenden fehler:
NanoVMTool.java:36: cannot resolve symbol
symbol : variable Version
location: class NanoVMTool
System.out.println("NanoVMTool " + Version.version +
^
NanoVMTool.java:66: cannot resolve symbol
symbol : variable Config
location: class NanoVMTool
Config.load(args[curArg]);
^
NanoVMTool.java:70: cannot resolve symbol
symbol : variable Config
location: class NanoVMTool
Config.overwriteFileName(outputFileName);
^
NanoVMTool.java:72: cannot resolve symbol
symbol : method setClassPath (java.lang.String)
location: class java.lang.ClassLoader
ClassLoader.setClassPath(args[curArg+1]);
^
NanoVMTool.java:73: cannot resolve symbol
symbol : method load (java.lang.String)
location: class java.lang.ClassLoader
ClassLoader.load(args[curArg+2]);
^
NanoVMTool.java:76: cannot resolve symbol
symbol : method totalClasses ()
location: class java.lang.ClassLoader
ClassLoader.totalClasses() + " classes");
^
NanoVMTool.java:79: cannot resolve symbol
symbol : class UVMWriter
location: class NanoVMTool
UVMWriter writer = new UVMWriter(writeHeader);
^
NanoVMTool.java:79: cannot resolve symbol
symbol : class UVMWriter
location: class NanoVMTool
UVMWriter writer = new UVMWriter(writeHeader);
^
8 errors
make: *** [NanoVMTool.class] Error 1
|
Liegt das vielleicht daran, dass ich nicht die Original Sun JDK sondern die Blackdown JDK verwende?
Datum: 09.10.2005 19:13
wenn der bootloader ersetzt wird, kann ich den avr dann eigendlich noch normal über isp flaschen oder muss ich dann immer über seriell gehen?
Datum: 09.10.2005 20:42
Solange man es nicht über entsprechende Fuses abschaltet, funktioniert ISP immer. Das ist unabhängig vom Bootloader.
Datum: 09.10.2005 21:41
@Blackdown: Keine Ahnung. Aus irgendeinem Grund funktioniert bei Euch das Übersetzen der abhängigen Klassen nicht. Kannst Du mal versuchen, z.B. Version.java seperat zu übersetzen? Also z.B. einfach javac Version.java einzugeben. Danach wieder versuchen, das ganze Projekt zu übersetzen und schauen, ob der erste Fehler (der sich eben auf die Version-Klasse bezieht) immernoch auftritt? Kann Blackdown nicht automatisch abhängige Klassen mitübersetzen? Ich bin in der Tat kein Java-Profi, sondern eher der C-Guru. Und wegen des Bootloaders: Ich ersetze den Asuro Bootloader, der ist das speziell für den Asuro vom Asuro-Hersteller in den Mega8 programmiert worden. Meine NanoVM (und deren Bootloader) werden per ISP wie jedes andere Programm auch installiert und ersetzen dabei jedes bereits installierte Programm, was im Falle des Asuro eben dess Bootloader ist.
Datum: 09.10.2005 22:07
> Keine Ahnung. Aus irgendeinem Grund funktioniert bei Euch das > Übersetzen der abhängigen Klassen nicht. Kannst Du mal versuchen, > z.B. Version.java seperat zu übersetzen? Also z.B. einfach javac > Version.java einzugeben. Danach wieder versuchen, das ganze Projekt > zu übersetzen und schauen, ob der erste Fehler (der sich eben auf > die Version-Klasse bezieht) immernoch auftritt? Das funktionierte leider nicht, aber ich habe eine andere Möglichkeit gefunden: ~/nanovm/tool/src$ ls .. NanoVMTool.jar config readme.txt src ~/nanovm/tool/src$ rm ../NanoVMTool.jar ~/nanovm/tool/src$ ls .. config readme.txt src ~/nanovm/tool/src$ javac *.class ~/nanovm/tool/src$ make jar cmf NanoVMTool.mf ../NanoVMTool.jar *.class ~/nanovm/tool/src$ ls .. NanoVMTool.jar config readme.txt src ~/nanovm/tool/src$ > Kann Blackdown nicht automatisch abhängige Klassen mitübersetzen? > Ich bin in der Tat kein Java-Profi, sondern eher der C-Guru. Ich hab keine Ahnung. Ich würde auch lieber Suns JDK nehmen, aber es gibt davon keine 64Bit-Version. > Und wegen des Bootloaders: Ich ersetze den Asuro Bootloader, der ist > das speziell für den Asuro vom Asuro-Hersteller in den Mega8 > programmiert worden. Meine NanoVM (und deren Bootloader) werden per > ISP wie jedes andere Programm auch installiert und ersetzen dabei > jedes bereits installierte Programm, was im Falle des Asuro eben > dess Bootloader ist. Achso. Gut.
Datum: 12.10.2005 13:44
> ~/nanovm/tool/src$ javac *.class Was kommt denn dabei raus? Du sagst dem Compiler im Klartext "übersetze die Dateien, die schon da sind". Das macht m.E. garkeinen Sinn. Der javac erwartet *.java-Dateien als Eingabe, keine Classfiles, wie Du sie angibst. Zumindest der Sun-javac mag das auch garnicht: > javac *.class javac: invalid flag: AccessFlags.class Usage: javac <options> <source files> ... Wenn Du die vorhandenen Classfiles (also Version.class etc) da lässt, dann übersetzt Du nichts neu, sondern baust nur daraus das JAR-File zusammen. Erst wenn Du das JAR-File sowie alle *.class-Dateien vorher löscht und dann irgendwie wieder zu einem funktionierenden JAR-File kommst hast Du wirklich das NanoVMTool neu erstellt. Wenn Du das mit der Blackdown hinbekommst würde ich das gerne ins Makefile übernehmen. Ciao, Till
Datum: 14.10.2005 15:37
@@Dominik S. Herwald (SlyD) Der AT91SAM7X kostet bei 1000Stück abnahme um die 6 Netto. Man muß aber noch dazu Rechnen das man ein PHY Ethernet Chip benötigt die sind auch nicht ganz Preiswert. Trozdem Denke ich kann man auf ca. 30 kosten kommen für ein Embedded System ... Gruss Sven
Datum: 16.10.2005 18:28
Hi, ich wollte mir das grad mal näher anschauen, aber die Links zu den Softwarepaketen auf der Seite gehen nicht. Wo finde ich denn die Dateien? Gruß Markus
Datum: 18.10.2005 16:17
Ich hab mal ne Frage zur weiternetwicklung der VM! ANgenommen ich wollte eine Lib für einen GLCD Controller schreiben (in meinem Fall der Toshiba T6A39). Wo pack ich die am besten hin? Schreib ich mir ne Java Klasse und füg die meinem Programm hinzu? Oder schreib ich ne Java Klasse und füg sie der VM hinzu? Und was is mit C Code? Brauch ich den auch noch, wenn ich der VM selber was gutes tun will? Andreas Galauner
Datum: 18.10.2005 16:23
Ich würd sagen schreib die Routinen am besten native in ASM oder C, nicht in Java. Das macht das ganze kompakter und schneller. Aber wo finde ich jetzt die Sourcepakete? Die Links auf der Seite funktionieren nicht
Datum: 20.10.2005 13:10
"The download is currently disabled due to licensing issues. The download will hopefully be available again soon. Stay tuned!"
Datum: 20.10.2005 16:15
Ja, das steht seit gestern oder vorgestern da. Hoffentlich renkt sich das wieder ein. Das Teil könnte nämlich interessant sein. Die einzige Alternative die ich noch kenne wäre PyMite, und das kriegt man in keinen Mega8
Datum: 22.10.2005 18:52
Till Harbaum(till@harbaum.org): Guckst du hier: http://www.mikrocontroller.net/articles/NanoVM#NanoVMTool Er hat sich in seinem Beitrag wohl nur verschrieben...
Datum: 24.10.2005 19:34
Wird das eigendich noch weiterentwickelt? Schön wär: - Unterstützung für andere AVRs neben ATmega8. - Unterstützung für Java-Bytecode im Flash. - Konfigurierbarkeit ob Asuro mit eincompiliert wird.
Datum: 25.10.2005 12:24
Ich hab gestern mal versucht die VM auf nem Mega16 zum laufen zu bringen. Scheint an sich auch geklappt zu haben, nur bin ich nachher komplett durcheinander gekommen, weil ich wieder ca. 10 Konsole offen hatte ^^ Sowas, wie ne GUI für das NanoVM Tool wär nicht schlecht, Evtl. kann ich da ja mal was basteln, wenn ich das mit dme Swing endlich mal gebacken bekomme. Bis wir das inner Schule machen dauerts leider noch n bischen... PS: Ich hab mein Passwort vergessen, weil man das hier nich ändern kan... Zumindest hab ich da nix zu gefunden. An wen soll ich mich da wenden? "Passwort vergessen"-Funktion gibts hier anscheinend auch nich...
Datum: 29.10.2005 16:48
Und was ist mit "Java-Bytecode im Flash"? Hat das schon mal jemand versucht und kann eine modifizierte Version hochladen?
Datum: 31.10.2005 19:36
Hallo, solange die rechtliche Sache nicht geklärt ist wäre es nett, wenn niemand irgendeine modifizierte Version hochlädt. Im Zweifelsfall kann sowas den Plan die Sache wieder Online zu bekommen sogar scheitern lassen. Die Sache dürfte sich innerhalb der nächsten drei bis vier Wochen hoffentlich zu unseren Gunsten geregelt haben. Till
Datum: 31.10.2005 19:53
Hi! Woran liegt es denn genau, kannst du ein paar mehr Details posten ? Hat sich sun beschwert deswegen ? Interessiert mich mal ;) Btw das Projekt finde ich super! Respekt ;)
Datum: 31.10.2005 21:24
Hi, nein, nicht Sun, sondern mein bisheriger Arbeitgeber. Details möchte ich im Moment lieber nicht posten. Sorry, Till
Datum: 31.10.2005 21:33
Ah ok alles klar! Dachte die sun leute haetten was dagegen gehabt ;) Danke für die Info!
Datum: 01.11.2005 16:15
"It is not a full Java VM, since it does not support exceptions, threads, floating point arithmetic and various other things" Ich hätte da mal eine Frage. Was bleibt von Java übrig, wenn man exceptions, threads, floating point arithmetic und andere Dinge weglässt? C oder Basic mit anderer Syntax? Was ist der Vorteil von diesem kastrierten Java gegenüber C?
Datum: 01.11.2005 16:50
Einfach portierbarer Code... Von einem Mikrocontroller auf den anderen. Aber ob das sein muss weiß ich auch nicht. Weil man ja eigentlich immer bei einem Controller bleibt bei einem Projekt.
Datum: 01.11.2005 18:29
> Ich hätte da mal eine Frage. Was bleibt von Java übrig, wenn man > exceptions, threads, floating point arithmetic und andere Dinge > weglässt? C oder Basic mit anderer Syntax? Es bleibt ein kleines Java. Die Vorteile gegenüber üblichen C-Compilern sind u.a.: - viele Leute kennen/können eben Java und müssten C erst lernen - Speichermanagement - gleicher Code/gleicher Compiler (kein spezieller Cross-Compiler) - Abstahierung der Hardware durch native Klassen (geht in C durch die Verwednung von Bibliotheken, aber die sind bei C eben doch Teil des Zielprogrammes und der Anwender muss sich um sie küßmmern) Ja, natürlich ist "richtiges Java" eben auch Exceptions usw., aber dafür reicht es im Mega8 eben nicht. Till
Datum: 01.11.2005 22:17
Gibt es wirklich schon mehr Java als C/C++ Programmierer? Wenn ich mir die newsgroups anschaue, dann hab ich eher das Gefühl, das die meisten erst Java lernen müssten und nicht umgekehrt. Ich habe mir die JavaVM für den AVR noch nicht angeschaut. Ich nehme mal an, dass es wie das "richtige" Java einen garbage collector hat. Ist das nicht auch ein Problem, wenn dieser bei der Abarbeitung des Programms einfach mal losläuft? Ich mein, dadurch kann ich doch bei der Ausführung keine definierten Zeiten garantieren. Oder muss man den garbage collector explizit aufrufen?
Datum: 01.11.2005 23:21
@Till: In welcher Sprache werden denn die native Klassen geschrieben? Und worin liegt dabei der Vorteil gegenüber C? In C binde ich das zum Mikrocontroller gehörende Headerfile ein, in Java das passende Classfile. In beiden Fällen muß ich also irgendwo die CPU angeben. Markus
Datum: 02.11.2005 07:57
Hi es ist evtl. für jemanden der vom PC und Java kommt einfacher auf einem µC auch Java einzusetzen. An das Einhalten irgendwelcher Zeiten die kleiner als 1ms sind möchte ich garnicht denken. Für einen Einsteiger schön, in dieser Kategorie an Systemleistung aber nichts für ernsthaften Einsatz. Deshalb: Jede Sprache für ihren Zweck. Java macht IMHO nur da Sinn wo es auf einen ordentlichen JIT-Compiler zurückgreifen kann. Denn Java als rein interpretierter Bytecode ist sogar auf einem 3GHz Rechner langsam. Ich erinnere mich mit Grauen an die erste Implementierung auf dem PC. Matthias
Datum: 02.11.2005 10:56
Hallo, die nativen Methoden sind in C geschrieben, wie die ganze NanoVM selbst auch. Ich verstehe den Hintergrund der Diskussion nicht ganz. Mit der Einführung von Java verschwindet C doch nicht. Wer in Java nur Nachteile hat soll natürlich weiter C programmieren, davon hält ihn doch garkeiner ab, das mache ich selbst doch nicht anders, immerhin ist die NanoVM in C geschrieben. Es geht doch nur um die Leute, die lieber Java programmieren und es nun können. Und so langsam gibt es sicher mehr Java- als C-Programmierer, frag' doch einfach mal eine Gruppe Uni-Abgänger, was sie besser kennen und lieber mögen. Spätestens einen Cross-C-Compiler wie WinAVR hat praktisch niemand je verwendet. Und für Java braucht man eben keinen neuen Compiler. Und ja, die Garbage-Collection springt manchmal an und läuft dann eine kaum vorherzusagende Zeit und ja, Java-Code läuft viel langsamer als C, er wird ja durch ein C-Programm interpretiert. Aber für viele kleine Asuro-Programme reicht es. Die NanoVM ist einfach eine weitere Option und ihr Vorteil ist der, dass sie nun existiert. Ihr habt nun einfach eine Wahl mehr, ob besser oder schlechter als andere ist doch Eure Entscheidung. Ich verstehe nicht so ganz, warum eine Java-Lösung erst dann Sinn machen soll, wenn sie in allen Aspekten mit einer C-Lösung konkurrieren kann. Ciao, Till
Datum: 02.11.2005 11:07
Die JavaVM hat sogar Vorteile gegenüber Native Compilern. Die Programme können theoretisch beliebig groß werden wenn man ein entsprechendes Speichermedium verwendet und man könnte noch einen schönen Debugger implementieren der es einem ermöglicht im System ohne teure Hardware zu debuggen. Das das allerdings schwierig wird ist mir klar, aber es ist möglich. Ich denke es geht hier nicht um die Sprache selbst sondern das Grundkonzept ist ein völlig anderes (Nativ Compiler gegen Bytecode Interpreter)
Datum: 02.11.2005 11:13
Nachtrag: Es gibt doch auch eine Moeglichkeit, den Garbage Collector nicht einzusetzen. Ich brauche das nicht, aber jeder der es braucht kann es ja programmieren... mfG, ejd
Datum: 02.11.2005 11:19
Hi, ich habe keine Ahnung, welche Art Bootloader auf dem Butterdfly ist. Aber ich programmiere den ganzen Chip neu, also wird ein ggf. vorhandener Bootloader wohl überschrieben. Aber es hält Dich natürlich nix davon ab, irgendwann den Originalbootloader zu installieren. Das Problem beim Asuro ist da nur, dass man den nicht einzeln bekommt. Und die Garbage-Collection springt nur dann an, wenn man häufig Objekte erzeugt und zerstört. Das wiederrum geht aber ohne Garbage-Collection auch nicht, sonst wären die 768-Bytes, die auf dem Mega8 frei sind ja ratz-fatz voll, wenn man zum Beispiel mit Strings rummacht. Zum Bespiel wird beim zusammenhängen zweier Strings per "+" ein neuer erzeugt und die beiden alten freigegegen. Till
Datum: 02.11.2005 11:36
Hi unternimmt deine NanoVM eingentlich auch was gegen die Fragmentierung des Speichers? Werden beim Lauf des GC die Objekte wieder ohne Lücken im Speicher angeordnet? Matthias
Datum: 02.11.2005 16:21
Java mag als Sprache (!) ein paar Vorteile gegenueber C haben. Aber das VM-Konzept ist fuer uCs nur eine Notloesung und bringt haufenweise Nachteile, aber keinerlei Vorteile mit sich - wann muss man schonmal kompilierte Module zwischen verschiedenen Controllern austauschen? Das Argument mit den "beliebig grossen" Programmen zieht nicht, da ein kleiner Controller mit externem Speicher in jedem Fall teurer ist als ein Controller mit entsprechend grossem internen Speicher. Man muss halt mal ueber den AVR-Tellerrand hinausschauen. Eine Java-VM auf dem AVR ist zwar eine interessante Spielerei, aber ich sehe ausser dem Nicht-Lernen-Wollen einer neuen Sprache oder eines neuen Prozessors keinen Grund warum das jemand ernsthaft anwenden sollte. Sinnvoller waere es m.E. andere, fuer Mikrocontroller geeignete Sprachen zu unterstuetzen (z.B. Ada).
Datum: 02.11.2005 16:57
Hallo, zur Garbage-Collection: Ja, die kompaktiert den Heap, danach steht also der freie Speicher als ein kompletter freier Block zur Verfügung. Wegen des VM-Konzeptes: Ich bin immer irritiert wenn Leute Dinge für komplett sinnlos und unbrauchbar darstellen. Woher wisst ihr immer so genau, was "eine Notlösung" ist und "keinerlei Vorteile" hat und für was es "keinen Grund es ernsthaft anzuwenden" gibt. Wenn es für_Dich keinen Anwendung hat, dann verwende es halt nicht, aber Dinge pauschal als sinnlos darzustellen ist wenig produktiv. Wegen des Speichers: Eine Java-Lösung für den AVR eignet sich zum Beispiel ausgezeichnet, die Class-Files auf einer SD-Karte abzulegen, diese per SPI an den AVR zu binden und dort mit nur wenig Speicher einfach die Programme direkt von SD-Karte auszuführen. Und Du wirst nicht ernsthaft behaupten wollen, dass ein Mikrocontroller mit der gleichen Menge internem Speicher genauso billig ist wie eine SD-Karte, oder? Ganz zu schweigen von der Tatsache, dass ich eine SD-Karte in jedem Kartenleser mit einem neuen Class-File beschreiben kann. Ja, es gibt größere Prozessoren als den AVR und ja, da kann man wesentlich ausgefeiltere Java-Implementierungen drauf laufen lassen (was ja auch passiert). So what? Das heisst doch nicht, dass man es nicht auch auf dem kleinen AVR machen kann. Ciao, Till PS.: Mich interessiert Deine AVR-Ada-Lösung: Wo kann ich mir die anschauen?
Datum: 02.11.2005 17:30
Hi das hier ist ein öffentliches Forum wo jeder seine Meinung kundtun kann. Und ich bin eben der MEinung das eine VM auf einem AVR zwar eine nette Spielerei (das soll nicht deine Leistung schmälern und ich werd die VM bei Gelegenheit mal ausprobieren) ist aber für den ernsthaften Einsatz eher nicht geeignet scheint. Wie lange würde denn deine VM brauchen um eine 64MB SD-Card voll von Java Bytecode NOPs (oder ADD, ...) auszuführen? Selbst einen Mega128 in C komplett mit Code zu befüllen ist schon eine Herausforderung. Ein Projekt hier besteht z.B. aus etwa 3kLOC und passt (wenn auch knapp) in einen Mega8515. Matthias
Datum: 02.11.2005 20:46
Kein Programm eignet sich für den ernsthaften Einsatz, bis man dieses ernsthaft einsetzt... mfG, ejd
Datum: 02.11.2005 23:18
Das C-Control von Conrad findet ja auch "ernsthafte" Anwendung. Ist auch ein Interpreter drauf. Nicht das ich das C-Control toll finden würde - ist mir viel zu langsam - und Basic - urgs - aber es ist ein Beispiel für ein sehr erfolgreiches Konzept... Das ganze mit Java, viel schneller und sogar noch viel billiger (Einzelpreis eines Mikrocontrollers) - super! Ist doch mal ne schöne Alternative! Taugt zwar längst nicht für Anwendungen wo schnelle Reaktionszeiten gefordert sind, aber für die meisten Hobby Anwender dürfte die Geschwindigkeit voll ausreichend sein.
Datum: 02.11.2005 23:35
Hallo, ich kann mich des Eindrucks nicht erwehren, dass nicht so ganz klar ist, wozu die NanoVM da ist. Kleines Beispiel: Ein Mega8 kostet 2.60 Euro im Versand. Eine Modellbahnampelsteuerung aus diskreten Bauteilen aufzubauen ist vielfach teurer und benötigt mehr Bauteile. Und wenn man am Ende noch 'ne Fussgängerschaltung will kann man von vorne anfangen. So, genau das kann auch ein Java-Laie eben mal in Java mit der NanoVM machen. Ist ganz simpel. Natürlich gibt es furchtbar viele und furchtbar komplexe Programme, die man nur in C auf dem AVR unterbringt, aber die Welt eines 2.60-Euro-Chips besteht nicht nur aus solchen Mega-Projekten. Das ist ja der Witz an so einem kleinen Chip: Man kann ihn für jedes Kinkerlitzchen einsetzen und spart auch noch Geld. Dafür ist die NanoVM gedacht: Für ganz keine einfache Dinge wie den Asuro oder eine einfache Modellbahnsteuerung. Und wenn einer den Prozessor wechselt, dann muss er sich eben nicht um den neuen Chip kümmern, die Hardwareabstraktion macht die NanoVM und der User merkt z.B. garnicht, dass sein Code eben noch auf einem Mega8 lief, jetzt aber auf einem PIC oder sonstwas, weil es den eben gerade als Restposten billiger beim Reichelt gab. Till
Datum: 03.11.2005 00:03
Hallo Till, ich finde dein Projekt sehr interessant. Ich frage mich, warum du dir den Zwang eines ATmega8 antuest, wenn man für wenige Euros mehr schon einen ATmega128 bekommt. (aktueller Preis 7 Euro ab 1 Stück). Martin
Datum: 03.11.2005 07:02
Hallo Till, wo bekomme ich den ATmega 128 für 7 EUR Brutto? Grus Sven
Datum: 03.11.2005 08:30
Vermutlich gebrauchte bei Ebay oder irgendwelchen Schwarzhändlern. Selbst bei Großhändlern muß man mehr als 10 Stück abnehmen um auf etwas 7 brutto zu kommen
Datum: 03.11.2005 09:03
@Martin er hat doch geschrieben das ers möglichst günstig haben will. Und ich denke das es später dann ja auch verschiedene Portierungen geben wird. Allerdings fidne ich ist das ganze etwas widersprüchlich, einerseitz sagst du das sei für Anfänger, andererseits sagst du das man damit mal eben ne 128mb SD kart (samt Code!) ansprechen kann, glaub nicht das das nen Anfänger machen wird :) Ansosnten finde ich es schon fazinieren wo Java überall eingeszt wird manche handys basieren ja teilweise schon komplett dadrauf. Ich seler programiere auch in Java, aber ehrlichgesagt tipep ich meine Miniprogramme doch lieber "mal schnell" in ASM, alelrdings wie schon gesagt, C-Controll sit ja auch sehr beliebt, was dahinter steht natürlich auch ne Marketingmaschiene aka Conrad ;)
Datum: 03.11.2005 10:49
> Ich frage mich, warum du dir den Zwang eines ATmega8 antuest, Das ist einfach: Weil er im Asuro steckt Der Mega128 ist zwar viermal so teuer, aber immernoch sehr günstig, das stimmt. Aber für den Heim-Bastler ist der Mega8 auch rein mechanisch einfacher zu verwenden. Und wenn man die NanoVM auf dem Mega128 verwendet lässt sich der gewonnene Platz ja auch sinnvoll nutzen: - als Java-Codespeicher (anstelle des kleineren internen EEPROMs) - für ganz viele native Methoden - für Zusatzfunktionen (z.B. könnte man einen kleinen TCP-IP-Stack aufnehmen und per Standard-konformer Java-Methoden ansprechen) - für Fließpunkt-Arithmetik - für die Behandlung von Exceptions - für die Behandlung von Threads Klar, der Mega8 ist sehr kein und die NanoVM passt da nur knapp rein, aber auch bei mehr Code-Speicher hat man so den Vorteil, noch schön viel Platz für weiteren Spass zu haben. > Allerdings fidne ich ist das ganze etwas widersprüchlich, einerseitz > sagst du das sei für Anfänger, andererseits sagst du das man damit mal > eben ne 128mb SD kart (samt Code!) ansprechen kann, glaub nicht das das > nen Anfänger machen wird :) Du musst bei diesem Projekt immer zwei Dinge trennen: Die Erweiterung der NanoVM, was sicher keine Sache für Anfänger ist und deren Benutzung. Derjenige, der die SD-Karte anbindet muss einiges an Know-How besitzen, das stimmt. Aber am Ende kann es jeder benutzen, der in der Lage ist, ein Class-File auf eine SD-Karte zu kopieren und in das Zielgerät zu stecken. Das ist viel einfacher, als jede der üblichen Arten, mit Mikrocontrollern zu arbeiten. Ich sage ja garnicht, dass ich die eilegende Wollmilchsau erfunden habe, aber man kann noch so viel mit der NanoVM machen. Und zum Beispiel Assembler: Wenn man den AVR-Assembler irgendwann mal gelernt hat eignet er sich sicher auch für schnelle, kleine Projekte, das glaube ich gerne. Aber für ein kleines Projekt bringt sich das wohl kaum einer bei, zumal er das wirklich für jeden neuen Prozessor (fast) von Grund auf neu lernen muss. Es ist eben immer der Trade-Off zwischen einfacher Programmierung und der damit einhergehenden Einschränkung was Rechenleistung und Speicherbedarf angeht. Assmebler steht da am einen Ende der Skala, die NanoVM an am anderen und C irgendwo in der Mitte. Klar, in Assembler kann ich alles machen, aber ich mache entsetzlich leicht Fehler und selbst meine Beispiel-Ampelsteuerung wird ziemlich schwer lesbar. Das entsprechende C-Programm dagegen ist kurz und das Java-Programm noch kürzer. Till
Datum: 03.11.2005 10:58
Wieso ist eigentlich immer gleich von Mega128 und SD Karte die Rede?? Ein Mega32 wäre speichertechnisch doch schonmal ein gewaltiger Schritt nach vorne und ein externes serielles SPI Eeprom gibts für 2-3 und mit mehr als genug Speicher für die meißten Programme. So ne SD Karte ist aufwändiger von der Ansteuerung und schweine teuer wenn man nicht zufällig eine von der Digicam übrig hat. Außerdem braucht man noch nen teuren Steckadapter dafür und groß ist das ganze dann auch noch
Datum: 03.11.2005 11:05
SD-Karten sind bequem, aber Du hast Recht erstmal ist die Verwendung eines Mega32 einfacher. Aber in der Tat haben viele Leute inzwischen SD-Karten der 16/32-MB-Klasse einfach ungenutzt rumliegen. Das ist bei mir der Fall, weil ich die z.B. mal für den Palm verwendet habe, dort aber inzwischen Karten bis 1GB drin nutze und diese kleinen Karten keinen sinnvollen Zweck mehr erfüllen. Zweitens ist deren Ansteuerung garnicht sehr schwer und selbst mit einem kleinen FAT-Dateisystem kein Kunststück. Und schliesslich der teure Sockel: Für einfache Tests und Heim-Basteleinen tuts recht zuverlässig ein Stück 2,54mm-Stiftleiste, wo man die Stifte der einen Seite leicht S-förmig biegt. Das passt ausgezeichnet auf eine SD-Karte, lässt sich leicht wechseln und gibt recht sicheren Kontakt. Aber das sind halt nur Ideen, wer lieber einen Mega32 nimmt soll sich von solchen SD-Karten-Ideen auf keinen Fall irritieren lassen. Till
Datum: 03.11.2005 11:22
Ich versteh schon warum man auf die Idee mit den SD Karten kommt, aber ich find's überflüssig. Die Lösung mit den Stiftleisten ist auch nicht grad ideal, vor allem wenn man ständig die Karte abziehen muß um Programme draufzuspielen. In der Entwicklungsphase will sicher keiner dauernd die Karte rausziehen und in nen Kartenleser stecken. Das erinnert dann doch zu stark an die Epromzeiten. Also ist ein Bootloader eh sinnvoller. Ich sehe keinen echten Vorteil von SD Karten, ausser das der eine oder andere vielleicht ne alte irgendwo rumliegen hat. SPI Eeproms gibts von Atmel bis 1MBit, das sind 128kByte. Wer die mit nem Java Programm vollkriegt hat schon was geleistet, vor allem wenn man bedenkt das speicherfressende Librarys wie Display oder von mir aus Fat16 oder ein UDP Stack da nicht auch noch rein müssen sondern im Flasch vom µC landen Letztendlich bleibt es jedem selbst überlassen, aber bevor du deine Probleme da nicht gelöst hast isses glaub ich eh müßig großartig darüber zu diskutieren
Datum: 03.11.2005 12:10
> Letztendlich bleibt es jedem selbst überlassen, aber bevor du deine > Probleme da nicht gelöst hast isses glaub ich eh müßig großartig darüber zu diskutieren Das stimmt allerdings. Till
Datum: 02.12.2005 14:38
Alles wieder online!!! Hi alle, die NanoVM ist wieder online und ein paar Verträge regeln, dass das jetzt auch so bleibt. Es hat ein wenig länger als erwartet gedauert, aber dafür ist die Sache jetzt ausgestanden. Viel Spass, Till
Datum: 11.12.2005 13:44
Und als kleinen Bonus fürs lange Warten abe ich in der Zwischenzeit etwas an den generischen Klassen gearbeitet. Die NanoVM eignet sich damit inzwischen auch für andere Dinge als den Asuro. Inzwischen werden RS232, IO-Ports, PWM, ein Timer und die AD-Wandler unterstützt. Damit lässt sich schon einiges machen, von der Modellampelsteuerung bis zum RS232-Thermometer. Für die meisten Funktionen liegen Beispiele bei. Ausserdem ist nun ein Konfigurationsbeispiel für den Mega32 dabei und durch direkten Vergleich der Mega8- und der Mega32-Konfig sollte es leicht möglich sein, zu sehen, was man für so einen Fall öndern muss und der Port auf weitere Chips sollte kein Hindernis sein. Zusätzlich gibt es noch eine generische LCD-Klasse, mit der sich ein per 8-Bit-Interface angeschlossenes Text-LCD bequem per Java ansprechen lässt. Das Wiki wurde auch erwas erweitert und dort gibt es u.a. zwei Beispielschaltpläne, mit denen sich die NanoVM auf einem Mega8 und einem Mega32+LCD testen lässt. Beide Schaltungen sind sehr einfach und lassen sich in zwei Stunden auf einer Lochrasterplatine aufbauen. Till
Datum: 11.12.2005 14:04
Respekt! Geniale Sache ;) Und noch dazu kostenlos erhältlich. Danke !
Datum: 11.12.2005 20:53
Echt super geile Sache! Aber warum hast du den LCD-Treiber im 8-Bit-Modus gemacht? Der 4-Bit-Modus ist doch viel pinsparender ohne merklich langsamer zu sein.
Datum: 11.12.2005 21:20
Warum vier Bit? Naja, ich hatte die Pins frei und wusste wie's geht. Es ist aber überhaupt kein Problem, auch 4 Bit vorzusehen und dann in native_io.c per #ifdef LCD_4BIT auch passenden 4-Bit-Code vorzusehen. Das könnte man dann projektabhängig in der jeweiligen config.h einschalten, dann könnte man je nach Lust und Laune für seine Hardware eines von beidem nutzen. Also wer mag kann das gerne nachrüsten ... ist sicher kaum Arbeit. Till
Datum: 17.12.2005 16:53
Inzwischen wurde das NanoVMTool, als das Tool, mit dem neue Java-Programme auf das Ziel geladen werden von Suns javax.comm-API auf GNU-rxtx umgestellt. Für den Anwender bedeutet das vor allem, dass das NanoVMTool damit nun offiziell auf den drei grossen Plattformen (Windows, Linux und MacOS) läuft. Till
Datum: 22.12.2005 22:53
Nachdem ich es geschafft habe (Linux, STK200), mit der neuen Version (1217) meinen Mega8 mit LedBlink zum arbeiten zu bringen, war ich ziemlich zufrieden. Endlich Java auf dem AVR! Leider klappte es für den Mega32 nicht mehr und nun ist auch der Mega8 nicht mehr richtig "upload"bar. Meldungen : ... invoke .. RXTX Warning: Removing stale lock file /var/lock/LCK..ttyS= Found port /dev/ttyS0 Please reset ... Received -8 Received -104 Received -0 Received -98 Habe ich wieder mal meine Einstellung zerschossen? Ich bitte um Hilfe. Wolfgang
Datum: 26.12.2005 12:06
Hallo, hmmm, irgendwie klappt die Kommuniktion per RS232 nicht. So aus dem Stand kann ich leider auch nicht sagen, warum es nicht mehr klappt. Aber das ist eine Stelle, an der auch gerade gebastelt wird, denn mit dem Asuro scheint es wirklich oft Probleme zu geben. Mit einer direkten RS232-Verbindung sollte e aber eigentlich keine Probleme geben. Was bei Dir da passiert ist, dass der PC nicht die Bytes empfängt, die er erwartet. Üblicherweise passiert das, wenn man nicht Reset am Zielgerät drückt und das fröhlich irgendwelche anderen Daten auf der RS232 ausgibt, über die sich das NanoVMToll dann wundert. Andere mögliche Ursache: Du hast gleichzeitig ein Terminal auf der seriellen Schnittstelle laufen. Das System, nach dem Linux die empfangenen Bytes dann auf die beiden hörenden Anwendungen (also NanoVMTool und Terminal) aufteilt habe ich nocht nicht durchschaut. In der Konsequenz kommt aber bei beiden nur ein Bruchteil der Daten an, womit dann keiner von beiden was anfangen kann. Till
Datum: 07.01.2006 22:28
Hallo, Ich habe ein AtMega 32 darauf geladen NanoVM.hex aus der avr_mega32_lcd verzeichnis. Wenn ich dass NanoVMTool start (unter Windows 2000) wird alles gut duchlaufen. Bis das runter laden anfangen mus dan bekomme ich volgendes: Java lib Version = RXTX-2.1-7pre17 Found port COM1 Please reset/start target now..... Received 0 Received 0 Received 0 Received 0 Received 0 Received 0 Received 0 Received 0 und so lauft das weiter. Wass is hier loss mit der kommunikation?? Adriaan.
Datum: 08.01.2006 11:02
@Adriaan: Was das Tool Dir sagen will ist, dass es lauter Nullen empfängt statt der Bytes, die es erwartet. Wann genau kommt denn diese Meldung? Sofort oder erst nach dem Du am Controller Reset gedrückt hast? Wenn Sie sofort kommen, kommen sie dann sogar, wenn der Controller garnicht an den PC angeschlossen ist? Und was für ein Programm befindet sich schon in der NanoVM? Mein LCD-Test? Funktionieren des Testausgaben auf der RS232? Was für ein Quarz ist angeschlossen? Bist Du sicher, dass die Baudraten stimmen? Till
Datum: 08.01.2006 13:14
Hallo Till Der nullen kommen sofort und auch wenn ich auf den Controller reset gedrückt habe. Der nullen kommen auch wenn der Controller garnicht an den PC angeschlossen ist. Ich habe NanoVM.hex in flash geladen und NanoVM_eeprom.hex im EEPROM beide mit ISP dongle und Ponyprog. Mein controller is ein ATMega32-16PI mit ein 16Mhz resonator. Und habe nanovm-20051217.tgz build genutzt. # # Mega32.config # name Mega32-with-LCD maxsize 1024 # info on target target UART filename COM1 speed 9600 Der rechner habe ich auf COM1 eingestelt 9600 Bits, 8 Databits, pariteit Kein, Stopbits 1, Handshake Kein. Habe shon kommuniciert mit ein eigenes program und der Hyperterminal von Windows und das lauft gut. Ich glaube der schaltung mit der MAX232 soll in ortnung sein. Heute mittag gehe ich ein LCD display anbinden um zu sehen ob er was text bringt. Was fur demo funktionen hat das NanoVM_eeprom.hex program eigenlich auf display und serieel port. Danke fur deine hilfe Adriaan.
Datum: 08.01.2006 23:03
> Der nullen kommen sofort und auch wenn ich auf den Controller reset gedrückt habe. > Der nullen kommen auch wenn der Controller garnicht an den PC angeschlossen ist. Dann hat Dein Problem erstmal nichts mit dem aussen angeschlossenen Gerät zu tun. Aus irgendeinem Grund klappt bei Dir der Zugriff auf die serielle Schnittstelle von Java aus nicht richtig. Ist an den COM-Port auch nicht zufällig irgendwas anderes angeschlossen? Wenn nichts angeschlossen ist sollen logischerweise auch keine Bytes (auch keine Nullbytes) empfangen werden. Gibt es hier noch andere Windows-Nutzer mit dem gleichen Problem? Till
Datum: 09.01.2006 10:00
Welche Compiler Version hast du? Bei einer ältere Version hatte ich in einem anderen Projekt ein ähnliches Problem, das ich einfach durch ein Update des Compilers auf einer Version > 3.4.0 beseitigt habe. Gruss Sven
Datum: 09.01.2006 13:34
Ich find das ganzte ein wenig undurchsichtig mit den ganzen verschiedneen Versionen der NanoVM. Welche man für welchen Controller nutzt, wie man Klassen nutzt usw. Ne IDE wär nicht schlecht. Vieleicht mach ich mich mal ran und entwerf was kleines. Erwartet euch aber nicht zu viel. Ich kann zwar schon n paar Programmiersprachen, aber Java lern ich erst grade. Mal sehen, was das gibt ;)
Datum: 09.01.2006 18:57
Hi, das Problem mit den verschiedenen Versionen kann ich verstehen. Aber leider geht es kaum anders, wenn man ein paar anwendungsspezifische native Methoden haben will. Und erst die machen die Bedienung des Asuro halbwegs bequem. Wenn Du irgendeinen Vorschlag hast, wie man das vereinfachen kann oder besser verständlich machen kann nur raus damit! Was für eine GUI stellst Du Dir denn vor? Eine Art grafisches Upload-Tool, wo man bequem das Zieltarget aussuchen kann? Leider kann man die Kommunikationsparameter nicht erraten oder von Target erfragen (wenn man es fragen könnte wüsste man ja bereits, wie man mit ihm zu reden hat). Sonst könnte man das automatisieren. Was ich am schönsten fände wäre ein Plugin für Eclipse. Man schreibt sein Java-Programm in Eclipse, klickt irgendwo im Menü auf "Upload to NanoVM", kann dann bequem im Pulldown auswählen, was für ein Gerät man angeschlossen hat und der Rest passiert von allein. Wäre ggf. eine nette Java-Fingerübung ... hint, hint ... Till
Datum: 09.01.2006 19:20
Ich nutze WinAVR-20050214 und Java JDK 1.4.2 Habe mein AtMega32 beim ansluss von LCD beschadigt. Warte auf ein neue MCU und versuche es dann weiter. Bisher danke fur dein tips, Grusse aus Holland.
Datum: 10.01.2006 00:35
Ja. An so ein Plugin hab ich auch schon gedacht. Allerdings hab ich noch nie ein Eclipse Plugin geschrieben, aber das lässt sich ja lernen. Das liest dann aus, welche Configs vorhanden sind usw. und startet dann dementsprechend den Compiler und das Tool.
Datum: 10.01.2006 13:22
> Ich nutze WinAVR-20050214 Das könnte bald ein größeres Problem werden. Leider passiert beim WinAVR recht wenig, so dass er inzwischen recht veraltet ist (gcc-3.4.3, aktuell ist 4.0.2; avr-libc-1.2.3, aktuell ist avr-libc-1.4.1, ...). Das könnte bald dazu führen, dass sich die NanoVM nicht mit mehr WinAVR übersetzen lässt, zumindest verwenden die aktuellen Entwickler aktuelle Tools und Rückwärtskompatibilität zu erhalten ist nicht sehr schön, weil sich doch einiges aus triftigem Grund geändert hat. Wie hast Du den Mega32 mit dem LCD zerstört? So einfach gehen die nicht kaputt ... Till
Datum: 10.01.2006 20:24
Sicher mit 3.4.3? das kommt bei mir: <username>@<host> ~ > avr-gcc --version avr-gcc (GCC) 3.4.4 Copyright (C) 2004 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. <username>@<host> ~ >
Datum: 10.01.2006 20:42
Hi, ok, die Versionen hatte ich aus einem anderen Posting. Der Compiler ist m.E. weniger das Problem, das wird erst dann wirklich zu einem Problem, wenn z.B. der Mega8-Code so gross wird, dass er nur mit den Optimierungen des gcc-4 in den Mega8 passt. Aber das ist noch nicht der Fall. Die avr-libc wird aber eher kritisch, das hat sich einiges geändert. Ggf. lässt sich das mit ein paar ifdefs regeln. Z.B. soll man inzwischen nur noch interrupt.h einbinden, während man früher dafür vor allem signal.h genommen hat. Till
Datum: 10.01.2006 20:47
Stimmt darüber stolpre ich immer mehr bei fremden Sourcen. Gruss Sven
Datum: 11.01.2006 10:01
Der GCC 4 ist sowieso noch nicht die Regel. Bei meinem Gentoo Server mit dem unstable Tree ist er glaub ich schon drauf. Auf meinem Laptop mit dem Stable Tree hab ich noch den 3.4.4 oder 3.4.3.
Datum: 11.01.2006 20:27
Nur zur Info! (fyi) Außer du hast einen Mac da ist jetzt 4.0.1 Standard, aber nur wegen den Universal Binarys. Gruss Sven
Datum: 27.01.2006 19:42
Hi, @Till Harbaum. Mal ein großes Lob. Die NanoVM ist wirklich eine klasse Idee. Ich versuche gerade das ganze auf einem Mega16 zum Laufen zu bringen. Ich habe auch schon diverse Anpassungen vorgenommen. Aber irgendwie läuft es noch nicht so ganz. Kompilieren geht, flashen auch, make upload-... findet jedoch nichts, Also funktioniert die serielle Kommunikation nicht. Hat jemand eine Idee, woran das liegen könnte. Ich benutze ein stk500_v2 Board von Atmel. Im Moment mit internem Oszillator bei 8MHz. Als Vorlage für den Mega16 habe ich den Mega32LCD Zweig verwendet, da diese beiden bis auf die Speichergröße nahezu gleich sind. Ich entwickle unter Debian sid. Java ist Version 1.4.2_10 von Sun mit rxtx. Die kompletten Änderungen sind im Anhang eingearbeitet. Außerdem habe ich uisp auf avrdude umgestellt, der funktioniert nämlich auch mit dem stk500_V2. Siehe nanovm/vm/build/avr_mega16_lcd/. Vieleicht kann da ja etwas von in die nächste Version einfließen. Eine Funktion zum Abfragen von Analogpins fehlt auch noch. Hat das jemand schon geschrieben. Holger
Datum: 27.01.2006 19:47
vielleicht läuft das uart nun auf halber freq. (wegen 8 statt 16 Mhz)
Datum: 27.01.2006 20:27
Erstmal danke für die schnelle Antwort ja, daran liegt es unteranderem auch, wie ich jetzt herausgefunden habe. Das ist aber ein eher kleines Problem. Mit einem externen 16 MHz Quarz geht es nämlich auch nicht. Irgendwie scheint das serielle Signal einem anderen Pin (PORTB1 und PORTB3 statt PORTD1 und PORTD2) anzuliegen, als es müsste. Ist da etwa doch ein PIN unterschied von Mega32 zu Mega16? Ich werde mal weiter nach dem Fehler suchen. Wenn jemand aber schon eine Lösung hat, wäre ich dankbar dafür. Ich habe nämlich noch nicht ganz den überblick über die Innereien der VM. Irgendwo weiter oben stand doch mal jemand, der das schon auf einem Mega16 laufen hatte. Holger
Datum: 28.01.2006 14:59
Mit diese program auf ein Mega32 mit 4 zeilen LCD kommt zeile 4 nicht
auf der richtige platz auf display.
// write something to the first line
Lcd.gotoYX(0, 0);
Lcd.print("Hallo NanoVM Java");
Lcd.gotoYX(1, 0);
Lcd.print("Zeile 2");
Lcd.gotoYX(0, 20);
Lcd.print("Zeile 3");
Lcd.gotoYX(1, 20);
Lcd.print("Zeile 4");
Datum: 01.02.2006 09:55
@Holger Nur mal so aus dem Kopf (ohne in der Doku genau nachgelesen zu haben): Haben Mega16 und Mega32 nicht andere Interrupt Vektoren? Ev funzt es dewegen nicht? nur so eine idee... lg, strub
Datum: 01.02.2006 11:02
Hi, die Interrupt-Vektoren sollten automatisch korrigiert werden, wenn er beim Übersetzen der NanoVM angibt, dass er einen Mega16 verwendet. Einfach das Mega32-Binary auf den Mega16 zu laden wird nicht gehen, aber ich glaube nicht, dass er das wirklich versucht. Wenn man die NanoVM übersetzt kann man ein Java-Programm schon fest einbinden, das ist dann sozusagen per default schon drin. Da kannst Du zum Beispiel des LED-Blink mal reinmachen, dann sollte der entsprechende Ausgang des AVR toggeln. Ansonsten gibt es nicht viel zu beachten. Der Unterschied zwischen Mega16 und Mega32 ist ja kaum größer als der zwischen Mega8 und Mega32, von daher habe ich ja schon deutlich unterschiedliche Beispiel in meinem Code. Ich habe keinen Mega16 zum Testen, sonst würde ich den ja mal in mein Mega32-Board stecken. Du kannst mir aber gerne einen schicken, den probiere ich dann mal aus. Ich bin sicher, dass es kein grosses Problem wird, den zum Laufen zu bringen. Wegen des LCD-Problems: Was heisst "Zeile 4 ist nicht am richtigen Platz"? Sind alle anderen Zeilen da, wo man sie erwartet? Wo taucht denn der Text von Zeile 4 auf? Till
Datum: 16.05.2006 15:37
Hat jemand hier jemals ein Java-Programm unter Windows auf einen Asuro übertragen? Ich kann irgendwie den com-Port nicht richtig ansteuern. Falls einer von euch eineAnleitung schciken könnte wär des echt suppa!^^
Datum: 22.05.2006 22:17
Was genau ist denn Dein Problem? Es gibt ein paar Dinge, die man beachten sollte. Dazu haben ich eben ein paar Zeilen auf http://www.harbaum.org/till/nanovm geschrieben. Vielleicht hilft Dir das ja. Till
Datum: 08.08.2006 10:58
hi
i have got a print float number and string manipulation problem. if
java source contain this code
System.out.println("Fibonacci of "+i+" is "+fib(i));
it makes a string manipulaton errror
Error loading class: java.io.FileNotFoundException: Unable to find
class file java/lang/StringBuilder.class
and if source contain this
float f=(a*b)/(a+b);
System.out.println(f);
it makes printstream error
Error loading class: java.io.FileNotFoundException: Unable to find
class file java/io/PrintStream.class
how can i solve this problems.
thanks for all.
Datum: 27.10.2006 11:34
Hier war doch mal angesprochen, dass man evtl. einen I²C-EEPROM als Programmspeicher der NanoVM nutzen kann. Hat das mal wer für nen mega8/88 umgesetzt? Man könnte dann evtl. sogar über eine Strategie nachdenken, nen multithreading einzubauen. Ein pausierender Thread müsste "nur" seine Daten auf den EEPROM schreiben.
Datum: 27.10.2006 12:47
Hi, nicht dass ich wüsste. Die meisten User wenden die NanoVM an, aber erweitern sie nicht. Von daher spiegelt die Homepage wohl den atuellen Stand wieder. Till
Datum: 31.10.2006 08:06
Hallo, Java4Life :). Die VM muss ich mal die tage ausprobieren! Endlich Java :D. Hajo ma gucken C kann ich ned so.. aber ne schöne Swing GUI für das NanoVMTool lässt sich einrichten :). Gruß, Timo
Datum: 31.10.2006 09:53
Hi, das wäre sehr cool. Das Projekt zieht gerade auf sourceforge.net um, damit die diversen Mitarbeiter direkt per CVS an den aktuellen Quellen arbeiten könnnen. Erweiterungen wie so eine GUI können da dann auch gerne rein. Wer direkt CVS-Zugriff will kann sowas dann selbst machen. Wer sich das nicht zutraut schickt mir seine Erweiterungen und ich lege die dann direkt darauf ab. So haben auch die anderen Entwickler immer sofort solche Erweiterungen und müssen nicht erst auf eine komplett neue Release-Version warten. Till
Datum: 31.10.2006 11:29
Hallo Till! Ich hab mir die Sourcen noch nicht so genau angesehen, aber wenn du magst, dann kann ich das Projekt 'mavenisieren'. Auch ein maven-nanovm-plugin sollte sich in absehbarer Zeit realisieren lassen. http://maven.apache.org
Datum: 31.10.2006 12:35
Hi, das klingt witzig. Was auch dringend mal passieren sollte wäre die Übersetzung des NanoVM-Wiki-Eintrags ins Englische. Das nehme ich mir immer wieder vor und komme dann nicht dazu. Also falls da jemand Spass dran hat ist das sehr willkommen. Till
Datum: 06.11.2006 00:20
Angehängte Dateien:Hi, Am Wochenende habe ich ein Eclipse-Plugin für NanoVM gebastelt. Wenn jemand das benutzen will, habe ich es hier angehängt. Installation: Help -> Software Updates -> Find And Installation ... -> Search for new features to install -> New archived Site und die nanovm_plugin.zip Datei auswählen. Benutzung: 1. NanoVM-Projekt erzeugen : File -> New -> Project -> NanoVM Project 2. Irgendeine Mainklasse erzeugen 3. Die Klasse hochladen: Run -> Run ... -> NanoVM PS: Wenn jemand das Plugin weiter erweitern will, kann ich den Sourcekode des Plugins auch hochladen. bye tugstugi
Datum: 06.11.2006 00:20
Angehängte Dateien:Hier ein Screenshot
Datum: 06.11.2006 00:23
Wow, das ist ja unglaublich cool! Bitte publizier' das irgendwo auf einer Webseite oder so, damit ich drauf verweisen kann. Danke, Till
Datum: 06.11.2006 15:20
NanoVMTool V1.4 - (c) 2005 by Till Harbaum
Usage: NanoVMTool [options] config classpath class
Options:
-c write c header file
-f name force output file name
Ich seh nur das da in der Konsole, wenn ich auf "Run" klicke...
Projekt, Config und Main Class ist alles eingestellt im Menü "Run" ->
"Run..."
Achja nochwas: Wo kann man den Com Port einstellen für das NanoVMTool?
Datum: 06.11.2006 15:28
Sorry anscheinend habe ich eine alte Version meines Plugins hochgeladen, das nicht richtig funktioniert. Heute abend werde ich die richtige Version hochladen. bye tuguldur
Datum: 06.11.2006 15:30
Lad die Datei am besten hier hoch und aktualisier den Link auf der Wiki-Seite: http://www.mikrocontroller.net/articles/Spezial:Upload
Datum: 06.11.2006 16:31
tugstugi wrote: > Sorry anscheinend habe ich eine alte Version meines Plugins hochgeladen, > das nicht richtig funktioniert. Scheint doch, dass ich gestern abend die richtige Version hochgeladen habe. @Andreas Galuaner Welche Eclipse- und Javaversion benutzst du? Ich benutze Eclipse 3.2 und Java 1.5. Den Commport kannst du in der Configdatei einstellen.
Datum: 06.11.2006 21:54
Eclipse 3.2.0 und Java 1.5.0_08 Eigentklich wie du. Keine Ahnung, warum es nicht funktioniert. Habs wie in deiner Anleitung gemacht. Zum Com Port: Da steht in der Config beim Port /dev/ttyS0. Ich bin aber jetzt grade unter Windows, da mein Linux hier auf dem Rechner (leider ^^) grade nicht so wirklich funktioniert. Was muss man unter Windows für COM1 angeben?
Datum: 06.11.2006 22:15
Andreas Galauner wrote: > NanoVMTool V1.4 - (c) 2005 by Till Harbaum > Usage: NanoVMTool [options] config classpath class > Options: > -c write c header file > -f name force output file name > > > Ich seh nur das da in der Konsole, wenn ich auf "Run" klicke... > Projekt, Config und Main Class ist alles eingestellt im Menü "Run" -> > "Run..." > > Achja nochwas: Wo kann man den Com Port einstellen für das NanoVMTool? Dann versuch mal mit Run As -> NanoVM. Dann werden die ausgewählte Klasse und die erste Configdatei als Launchkonfiguration genommen.
Datum: 06.11.2006 23:09
Hmm bei Run As... hab ich gar kein NanoVM drin. Nur unter Run -> Run...
Datum: 07.11.2006 10:33
Andreas Galauner wrote:
> Hmm bei Run As... hab ich gar kein NanoVM drin. Nur unter Run -> Run...
Zuerst musst du eine Mainklasse (im Package-Explorer oder im Editor)
selektieren und dann Run As... aufrufen. Sonst erscheint da nix.
Datum: 07.11.2006 14:10
Achso. Da tut sich bei mir aber leider auch nichts. Soll ich mein Projekt evtl. mal hochladen? Vielleicht ist da irgendwas schief.
Datum: 07.11.2006 14:15
Andreas Galauner wrote: > Achso. > Da tut sich bei mir aber leider auch nichts. Soll ich mein Projekt evtl. > mal hochladen? Vielleicht ist da irgendwas schief. ok lade mal hoch.
Datum: 07.11.2006 19:47
Andreas Galauner wrote:
> Bitteschön
Hi, Das Problem war das Leerzeichen im Projektname. Nenne deinen Projekt
so um, dass er kein Leerzeichen enthält. Dann sollte es funzen.
Datum: 07.11.2006 20:26
Leider nicht... Ich hab sogar mal einen Pfad ohne Leerzeichen benutzt. Kann man sich irgendwo die Befehlszeile anschauen, mit der das NanoVMTool aufgerufen wird? Ich hab keine Ahnung mehr, woran das liegen kann. Ansonsten lässt sich das Problem vielleicht mit dem Sourcecode lösen. Ich hab nur vorher noch nie ein Eclipse Plugin gesehen ;)
Datum: 07.11.2006 21:22
Angehängte Dateien:Andreas Galauner wrote: > Leider nicht... > Ich hab sogar mal einen Pfad ohne Leerzeichen benutzt. > > Kann man sich irgendwo die Befehlszeile anschauen, mit der das > NanoVMTool aufgerufen wird? > Ich hab keine Ahnung mehr, woran das liegen kann. > Ansonsten lässt sich das Problem vielleicht mit dem Sourcecode lösen. > Ich hab nur vorher noch nie ein Eclipse Plugin gesehen ;) Ich vermute mal, dass du ein Workspace benutzst, dessen Verzeichnisname ein Leerzeichen enthält. Dann versuch mal diese Version. PS: Ich kann keine Datei in Wiki hochladen. Da gibt es immer eine Fehlermeldung, dass meine Datei leer ist.
Datum: 07.11.2006 21:45
Mit der neuen Version scheint es zu funktionieren. Ich hab leider jetzt keine Zeit um das ausgiebig zu testen, aber das NanoVMTool wird ausgeführt! Danke!
Datum: 07.11.2006 22:34
Sorry, die Upload-Funktion im Wiki war kaputt. Ich hab sie repariert und die Datei hochgeladen.
Datum: 09.11.2006 13:55
valtuntas wrote: > hi > i have got a print float number and string manipulation problem. if > java source contain this code > > System.out.println("Fibonacci of "+i+" is "+fib(i)); > > it makes a string manipulaton errror > > Error loading class: java.io.FileNotFoundException: Unable to find > class file java/lang/StringBuilder.class Wenn man Java 1.5 und "+" Operationen für Strings benutzt, bekommt man diesen Fehler, weil diese Klasse in Java 1.5 eingeführt wurde und String + String = String nicht mehr gilt sondern String + String = StringBuilder. Manche Leute benutzen ausschliesslich Java 1.5. Daher sollte man vielleicht NanoVM auch darauf umstellen. Sonst muss man gezwungen, immer die StringBuffer-Klasse zu benutzen, was nicht sehr schön ist.
Datum: 09.11.2006 14:24
Hi, im CVS ist das mit dem jdk 1.5.0 schon behoben (dank Nils). Ich werde regelmäßig aus dem CVS Release-Versionen machen, so dass auch nicht-CVS-User daran kommen. Aber wer mit CVS umgehen kann kann sich jetzt schon per Anonymous-Access die aktuellste Version holen. Ciao, Till
Datum: 09.11.2006 14:27
Hi, die NanoVM hat jetzt auch zwei (englischsprachige) Mailinglisten auf Sourceforge. Technische Diskussionen unter Entwicklern sollten ggf. auf der nanovm-devel-liste stattfinden und damit auch Entwicklern zugänglich sein, die kein Deutsch sprechen. Till
Datum: 16.11.2006 09:19
meint ihr, dass diese VM auch auf den mega 16 und 32 funktioniert? ich bin gezwungen durch mein studium java zu lernen und was sinnvolleres als taschenrechner schreiben oder linien simulieren wird es ja wohl auch geben :-)
Datum: 16.11.2006 10:29
Naja, zum JAVA-Lernen ist das sicher nicht sinnvoll. Das ganze bildet nur ein Subset von Java ab und es fehlt die wichtigste Sache - nämlich Exceptions. Ist eher für Leute, die Java schon kennen und so etwas für den uC benutzen wollen.
Datum: 16.11.2006 13:10
Hi, ja, sie funktioniert auch auf anderen Megas. Für den Mega32 ist sogar ein Beispiel dabei. Und zum Lernen ist es wirklich sicher nicht der richtige Weg. Um nebenbei ein wenig Spass zu haben langt es allemal, aber die Sachen an Java, die Dein Prof. dir gerne beibringen möchte, kann die NanoVM nur halb oder garnicht. Till
Datum: 09.07.2007 01:00
Hallo tolles Projekt, Hut ab. Wenn die VM performant ist, was ich jetzt nicht auf die Schnelle beurteilen kann, dann ist das echt spitze. Nur eine Frage: Ist dieses Projekt "nur" als Demonstration gedacht, um zu zeigen, dass auf einer so schwachen Hardware eine Java-VM realisiert werden kann? Oder wofür könnte man das sinnvollerweise einsetzen? Welchen Vorteil bietet eine Java-VM auf einer solchen schwachen (bezüglich CPU-Performance und bezüglich Speicherplatz) Hardware? Ich gebe zu, von Java nicht viel Ahnung zu haben. Vielleicht klärt mich mal jemand auf. Habe bisher nur C-Entwicklung für Mikrocontroller gemacht.
Datum: 09.07.2007 16:28
Hallo habe bisher nur mit C auf uC progammiert. Denkt ihr, dass sich Entwicklungszeiten bei Verwendung von Java verkürzen?
Datum: 09.07.2007 16:43
Hi, die NanoVM-Beispiele zeigen eigentlich recht genau, wozu sowas gut ist. Es macht Sinn mit Geräten, für die jemand anderes die "harte" Arbeit in Form von passenden Klassenbibliotheken vorbereitet. Der muss das in C machen und hat's sicher nicht besonders leicht. Der schreibt im Falle eines Roboters z.B. Klassen zum Abfragen der Sensoren etc etc Aber der Anwender der das dann benutzt hat's einfacher. Der kümmert sich nicht um die Hardware-nahen Sachen und der verwendete Prozessor ist ihm genauso egal wie der normalerweise nötige C-Compiler. Alles was er braucht ist ein Java-Compiler und den gibt es für jedes System kostenlos. Till
Datum: 04.06.2008 16:13
Wenn das Projekt nicht im default-Pfad sondern woanders im Workspace liegt gibts immer ein "Error loading class: java.io.FileNotFoundException: Unable to find class file foo.class". Könnte das noch behoben werden?
Datum: 11.11.2009 10:45
Wird das Projekt noch gepflegt? Ich wollte es eigentlich auf einen Atmega2560 übertragen, wollte es aber vorher unter Linux mal "probekompilieren". Irgendwie kommen da lauter Fehlermeldungen, mit denen ich so erstmal nichts anfangen kann. Ich habe einfach "make" aufgerufen. Weiß jemand weiter bzw. wie habt ihr das gemacht?
Datum: 11.11.2009 20:35
Hi, zur Zeit wird das Projekt nicht aktiv gepflegt. Ich hatte irgendwann keine Lust mehr, irgendwelchen Diplomarbeiten einseitig zuzuarbeiten. Es gab/gibt diverse Uni-Projekte, die die NanoVM einsetzen. Oft fragen die auch nach Support. Aber am Ende behalten alle ihre Ergebnisse für sich. Nicht ein einziges hat je seine eigenen Ergebnisse zurückfliessen lassen. Also habe ich Entwicklung und Support eingestellt. Sorry, Till




