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);\
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
> 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