Hallo *, ich habe mir mal zum Ueben Ubuntu 9.10 installiert und bin auch sehr zufrieden mit dem Look and feel. Nichtdestotrotz bin ich ein Linux Anfaenger. Nun programmiere ich dann und wann Renesas M16C Controller und wuerde gern den Renesas eigenen Compiler nc30wa unter Linux benutzen. Ich habe ihn dann unter wine installiert und kann auch mit batch files uebersetzen. Lieber wuerde ich aber meine makefiles nutzen. Leider klappt es nicht so wie ich mir das vorstelle. Rufe ich z:\usr\bin\make auf, so wird der Pfad zum Compiler nicht gefunden Wenn ich ein make ins /home/ludger/.wine/drive_c/windows kopiere, dann erhalte ich eine Exception beim Aufruf von make. Hat jemand Tipps?
Hi Ruf doch in deinem Makefile den Compiler mit Hilfe von wine auf. Also in einer Regel etwa so: all: wine .wine/drive_c/Programme/m16c/compiler.exe $ARGS Matthias
Danke fuer den Tipp. Jetzt meckert er beim Assemblieren mit as30.exe, dass er mac30.exe nicht findet. Vermutlich fehlt ihm fuer das mac30.exe, das wahrscheinlich vom as30.exe aufgerufen wird der Pfad.
Guten Morgen, Das Problem liegt daran, dass Du nicht im entsprechenden Verzeichnis bist. Das kannst Du lösen in dem Du cd /home/DeinNutzer/.wine/Laufwerksordner/Programme/DeinCompiler (Bitte die Verzeichnisse an Deine Gegebenheiten anpassen). Das heisst wichtig ist, dass Du in dem Verzeichnis bist, wo die DLL's und EXE's sind. Lieber Gruss, Adrian Badertscher
Hast du die Enviroment-Variablen und den Path gesetzt? zB. ein ausschnitt aus meinem Makefile: export BIN30=$(COMP_DIR)\BIN export LIB30=$(COMP_DIR)\LIB30 export INC30=$(COMP_DIR)\INC30 export TMP30=$(COMP_DIR)\TMP Path=C:\WINNT\SYSTEM32;C:\WINNT;\ $(BIN30);\ $(TOOL_DIR);\
Hallo Volker, danke, ich glaube das hilft mir weiter. Ich probiere es heute Abend aus. Wird die Pfad Variable auch im makefile gesetzt?
Ja. Siehe "make & Enviroment-Variablen" Achtung: mein Beispiel stammt von einem Windowsrechner. Als nicht 1zu1 übernehmen. Ciao Voöker
Mich wuerde ja mal interessieren warum man ueberhaubt den nc30 nehmen will wenn man schon unter Linux arbeitet? Der gcc ist doch genausogut und hat noch den Vorteil das man keine 64k Grenze hat. Ich sehe den einzigen Vorteil des Entwicklungspaketes von Renesas in der Nutzung des E8. Da wuerde mich dann aber auch mal interessieren wie den jemand unter Linux betreibt. :-) Olaf
Hallo Olaf, ich habe mich durchaus schon mit dem GCC fuer die M16/M32 Reihe auseinandergesetzt. Letztendlich fehlen mir immer die 2 Pointer. Der NC30 unterstuetzt halt near und far Pointer und im gcc habe ich noch keinen schoenen Workaround gesehen, mit dem man z.B. statische Felder und Strings einfach handhaben kann, wenn sie im 24Bit Adressbereich liegen. Ich bin aber auch nicht der Programmierprofi und darum um jeden guten Tipp dankbar. Gleichzeitig bin ich wie oben erwaehnt auch nicht der Linux Profi :-) Ich spiele im Moment halt gerade ein wenig mit Ubuntu und habe mir gedacht, dass es nett waere meine M16C Software auch unter Linux uebersetzen zu koennen.
Hallo *, ich bin nun soweit, dass ich eine einfache Datei uebersetzen kann. Nun habe ich ein weiteres Problem. Meine nc30wa Copiler tools erzeugen Dateinamen in Grossbuchstaben. Ich nutze aber lieber Kleinbuchstaben. Gibt es eine einfache Moeglichkeit innerhalb eines Makefiles die Variablennamen wie z.B: CSRC = foobar.c in Grossbuchstaben zu aendern?
> Meine nc30wa Copiler tools erzeugen Dateinamen in Grossbuchstaben. > Ich nutze aber lieber Kleinbuchstaben. Das kommt davon wenn man Dosenkacke auf MaennerInnen Systemen nutzen will. :-) Liegt der Compiler von Renesas zufaellig auf einer FAT Partition weil du ihn auch unter WinXP nutzt? Dann koennte es sein das du das Problem ueber eine Option beim mounten der Partition loesen kannst. > Gibt es eine einfache Moeglichkeit innerhalb eines Makefiles die > Variablennamen wie z.B: Also ein Makefile kann vermutlich alles, einschliesslich dem ausloesen des dritten Weltkriegs und Gehirnkrebs. Letzteres tritt gelegentlich beim lesen der Doku zu Make auf. Trotzdem musst du da durch! Was sicherlich ginge waere aus dem Makefile raus ein bash-script aufzurufen und dort alle Files in einem Direktory mit einer bestimmten Endung in Kleinbuchstaben umzuwandeln. Das genaue Procedere kann man dann wieder mit "man bash" lernen. Olaf
Liebe Maennerin Olaf, ich verdiene seit mehreren Jahrzenhten mein Geld mit Hilfe dieser Dosenkacke. Was nuetzt es zu lamentieren, wenn Sachzwaenge doch die staerkere Macht haben? Ich habe aber auch keine Lust zum x-ten Male eine Linux-toll Windows-doof Diskussion zu starten. Nein meinen nc30wa habe ich mit Hilfe von wine setup.exe ins wine Verzeichnis auf der ext4 Partition installiert. Makefiles sind toll:-) Es war auch nicht so schwierig. mv $(shell echo $@ | tr [:upper:] [:lower:]) $@ hat nach dem Uebersetzen den dateinamen wieder gekleint. Danke trotzdem an alle die mir geholfen haben
Hallo *, als Anhang findet der Interessierte ein Mini Projekt, dass sich mit dem nc30wa unter wine uebersetzen laesst.
> Makefiles sind toll:-) Das Konzept des Makefiles ist toll, aber die Implementation schwaechelt mindestens an der Stelle wo ein " " und ein TAB eine unterschiedliche Bedeutung in der Beschreibungssprache haben. > als Anhang findet der Interessierte ein Mini Projekt, dass sich > mit dem nc30wa unter wine uebersetzen laesst. Und wie bekommst du dein Projekt nun in den Controller? Soll heissen, hast du den E8 unter Wine am laufen? Das waere naemlich mal eine interessante Sache. Ich weiss es gibt "m16-flash", aber E8 waere doch besser weil man dann auch die Controller ueber die Reset-Leitung brennen kann. Oder gibt es mittlerweile eine Loesung fuer Linux die das auch kann? Olaf
Ich habe als Konsolenanwendung unter Windows einen eigenen Programmer codiert, der den Reset in den Bootloader per RTS und DTR steuert. Das nutze ich aber schon seit Jahren nicht mehr, da ich einen eigenen Bootloader benutze, der in den oberen 16k liegt und die Software per xmodem Transfer entgegennimmt. Das geht sowohl unter Windows mit z.B. TeraTerm oder unter Linux mit z.B. CuteCom sehr gut und mit 115200 an einem M16C/62P. Gleichzeitig enthaelt der Bootloader Debughilfen, so dass mit einem beliebigen Terminal Programm in den uC hineingeschaut werden kann.
> Ich habe als Konsolenanwendung unter Windows einen eigenen Programmer > codiert, der den Reset in den Bootloader per RTS und DTR steuert. Das meine ich nicht. Die neuen Devices von Renesas (z.B R8C29) koennen ausschliesslich ueber MODE und RESET gebrannt und debuggt werden. Ich habe deshalb in meiner Hardware nur noch einen 4poligen Steckverbinder. (GND,Vcc,Mode,Reset) Das hat dann den Vorteil das keine Leitung und kein serieller Port fuers Brennen und Debuggen drauf geht. > da ich einen eigenen Bootloader benutze, der in den oberen 16k liegt > und die Software per Das ist natuerlich auch eine Loesung. Der neue M16C/6C hat sogar extra einen zusaetzlichen Bereich im Flash den der integrierte Bootloader von Renesas anspringt wenn er nicht weiss was er machen soll. > Gleichzeitig enthaelt der Bootloader Debughilfen, so dass mit einem > beliebigen Terminal Programm in den uC hineingeschaut werden kann. Mach ihn gdb kompatible und wirf den Source in die Menge und wir werden dir ewig dankbar sein. :-) Eigentlich wollte ich mich ja mal irgendwann aufraffen das zu schreiben, aber man kommt ja zu nichts.... Olaf
@Olaf >Eigentlich wollte ich mich ja mal irgendwann aufraffen das zu schreiben, >aber man kommt ja zu nichts.... siehste, geht mir auch so: - eigentlich bin ich eher Hardwerker - 3 kleine Kinder und Teilzeithausmann - ich habe ueberhaupt keine Ahnung wie man etwas gdb kompatibel macht - ich freue mich schon darueber, das ich eine LED ans Blinken bekomme - ich habe zwar schon mehr als zehn Prozessoren programmiert, die meisten jedoch nur rudimentaer Will sagen: hoert sich schoen an, was du schreibst, ich kann das aber nicht leisten :-) >Das hat dann den Vorteil das keine Leitung und kein serieller Port fuers >Brennen und Debuggen drauf geht. Das muss bei meinem Bootloader natuerlich auch nicht. Wenn auf dem M16C board ein Trommel zu Port Pin Konverter vorhanden ist, kann man das neue Programm auch reintrommeln :-)))
> board ein Trommel zu Port Pin Konverter vorhanden ist, kann man > das neue Programm auch reintrommeln :-))) Du brauchst aber immer noch einen Portpin dafuer. Okay, bei einem M16C/62 spielt das nicht so die Rolle, der hat ja Pins ohne Ende. Aber wenn der Controller ueber die Resetleitung programmiert werden kann dann ist das gerade bei kleinen Devices schoener weil vielleichst sonst ALLE Pins benutzt werden. Jetzt koennte man natuerlich zum reinen programmieren noch was tricksen, aber spaetestens beim Debuggen wo ja noch die aktuelle Soft mit der Leitung rumwedelt wird es bloed. Olaf
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.