Forum: PC-Programmierung Portierung LINUX Programm auf Windows


von Anderas Häusler (Gast)


Lesenswert?

Hi
Ich habe im Internet ein interessantes Programm gefunden welches unter
Linux läuft.

Ich möchte das Tool aber gerne unter Windows laufen lassen bzw. auf
Windows portieren.

Ich habe mir mal Gygwin angeschaut, blicke aber leider nicht durch, was
ich damit genau machen kann. Auch die Installation scheint mir recht
komploziert zu sein.

Ich möchte mir das Tool auch mit einem Debugger anschauen, damit ich
begreiffe, wie es aufgebaut ist.

Ich hoffe, es kann mir jemand weiterhelfen.

Gruss Andy

von Karl heinz B. (kbucheg)


Lesenswert?

Welches Tool ist es denn?

ABhängig davon, was das Teil genau macht, kann es nämlich
sein, dass eine Portierung gar nicht oder nur mit erheblichem
Aufwand möglich ist. Das ist so, wie wenn du einen Vergaser
von einem Panzer in einen Trabbi einbauen möchtest.

von Stefan (Gast)


Lesenswert?

Ein bisschen konkreter musst du schon werden. Die Schwierigkeit der
Portierung kann von direkt lauffähig bis zu nicht machbar reichen, je
nach Quellprogramm.

Cygwin ist eigentlich nicht schwer zu installieren. Mit Cygwin wird ein
Unix-Konsolensystem inkl. einem "simulierten" Unix-Dateibaum auf dem
Windows Rechner nachgebildet. X-Windows Erweiterungen gibt es auch, die
setzen dann auf das Konsolensystem auf.

Zur Installation gibt es ein zentrales Setup-Programm und vorgefertigte
Pakete, die vom Setup-Programm aus dem Netz gezogen und installiert
werden. Eine DSL-Leitung oder besseres ist sinnvoll. Das Setup-Programm
merkt sich, welche Pakete installiert sind usw.

Für die effiziente Nutzung des Systems sollte man sich etwas in die
Bedienung einer Unix-Shell und typ. Unix-Programme einarbeiten.

Von der Programmiererseite stellt Cygwin den GCC zur Verfügung und die
entsprechenden Bibliotheken, darunter die typ. Unix-Bibliotheken, die
bei der Portierung gebraucht werden.

Die erzeugten Programme ziehen die speziellen Funktionen dann aus einer
zentralen cygwin1.dll. Auf dem Zielsystem muss dann kein komplettes
Cygwin mehr installiert sein, die Weitergabe des Programms inkl. der
cygwin1.dll ist ausreichend.

von SiO2 (Gast)


Lesenswert?

Das einzigste problem bei cygwin, ist das starten des X-Servers. Fuer
nicht GNU/linux oder Unixuser wird es frickelig, aber ist afaik gut
dokumentiert.

von Stefan (Gast)


Lesenswert?

Jau. Aber vielleicht braucht Andy den X-Server gar nicht und kann sich
den Teil sparen. Das hängt halt vom Programm ab, welches er portieren
will.

[Off-Topic]
Tipp: Diejenigen, die kein X-Windows aufsetzen möchten und mehrere
Rechner laufen haben und die genervt sind von den vielen
Tastaturen/Mäuse auf dem Schreibtisch... die sollten sich mal synergy
ansehen: http://sourceforge.net/projects/synergy2
[/Off-Topic]

von Anderas Häusler (Gast)


Lesenswert?

Hallo Leute

Vielen Dank für die zahlreichen Antworten!

Also hier der Link zu den Dateien:

http://www.kpitgnutools.com/index.php

Es ist ein Tool, mit welchem man Renesas Controller in einer Schaltung
programmieren kann.

Ich habe bereits angefangen mit der Portierung auf den Borland C++
Builder. Ein paar Fehlermeldungen habe ich bereits weggekriegt.
Jrgendwie komme ich aber jetzt ans Ende meines Lateins. (Kenne mich
besser in der Controller Programmierung aus oder aber mit Delphi)

@Stefan:

Habe mir das Cygwin Tool installiert, war mir aber nicht sicher, welche
Dateien ich für das Setup auswählen muss. Weiss nun nicht, ob der
benötigte C++ Compiler auch auf meiner Platte ist.

Beim Aufstarten von Cygwin kommt nur eine Dos ähnliche Box. (Vielleicht
gibts ja jrgend eine Shell, welches das ganze ein wenig einfacher
macht)

Vielleicht kannst Du mir ja sagen, wie ich den Source neu compilieren
kann.

Ich bin für jeden Tip sehr dankbar.

Gruss Andy

von Stromspannung (Gast)


Lesenswert?

Holla!

die DOS ähnliche Box ist die Shell ;)

Was mich  aber wundert ist, dass unter Features deines Programmes
"Ready-to-use Installers on Windows & Linux platforms" steht??

Hat dieses Programm eine graphische Nutzerschnittstelle? Wenn ja, dann
ist es natürlich nötig das entsprechende Toolkit/Framework für Windows
zu haben. Den Source kriegt man nur als angemeldeter Nutzer, wie es
scheint...

von Stefan (Gast)


Lesenswert?

Ähm...

"The KPIT GNU tools are pre-built binary toolchains packaged in ready
to use Windows & Linux Installers along with Release Notes, Tutorials
and FAQs. Full source code for the tools is also provided. Windows
users can use the tools with Renesas' High-performance Embedded
Workshop (HEW) IDE and other Renesas tools (such as the HDI Debugging
Interface)."

D.h. den eigentlichen Compiler gibt es bereits als Windows-Version. Nur
wenn man statt der Windows & Linux üblichen Konsolenumgebung eine
grafische Entwicklungsumgebung (IDE) haben möchte, kann man den
Compiler bzw. die Toolchain in die IDE von Renesas einbinden.
Vermutlich tut es auch jede andere IDE auch...

Zu meiner Schande muss ich gestehen, dass ich mich schon ewig dort
registriert (fürs R8C Target) habe, aber immer noch mit den Renesas
Tools arbeite. Soo schlecht sind die nicht und wenn man Probleme hat,
findet man einfacher Gleichgesinnte, wenn man mit den Hersteller-Tools
arbeitet.

von Stefan (Gast)


Lesenswert?

Ob ein Compiler installiert ist siehst du schnell, wenn du ihn versuchst
aufzurufen.

Gib in der Shell mal ein

gcc --version

Entweder kommt eine Fehlermeldung ala Programm nicht gefunden oder die
Versionsmeldung des hoffentlich installierten GCC.

von Anderas Häusler (Gast)


Lesenswert?

Hi Stefan

Du hast natürlich recht mit Deinen Aussagen.
Das KPIT GNU Tool ist ein Cross Compiler, welcher sich in die HEW
Oberfläche integrieren lässt. Dieser läuft unter Linux sowie unter
Windows.

Ich brauche aber das RFlash Tool, welches die selben Funktionen
enthällt wie das FDT Tool von Renesas.

Da ich an der Entwicklung einer Programmierbox für Renesas Controller
bin, muss ich den Aufbau der verschiedenen Kernel Files und die
Kommunikation zwischen MCU und PC verstehen.
Die Box soll unter anderem ohne PC laufen und so ein einfaches
Softwareupdate im Feld draussen ermöglichen.
Leider gibt Renesas keine Informationen über die Kommunikation mit dem
FDT Tool heraus.

Da es sehr aufwändig ist, mit dem Protokoll Analyzer die Daten zu
analysieren, käme mir das RFlash Tool (wo auch der Source Code
erhältlich ist) natürlich sehr gelegen.

Das RFlash Tool
http://www.kpitgnutools.com/releaseNotes.php?view=RNDET&RN=179
lässt sich aber anscheinend nur unter Linux installieren und starten.

Ich habe schon sehr viel Zeit in dieses Thema investiert und wäre
unendlich dankbar, wenn mir jemand ein wenig weiterhelfen könnte.

Gruss Andy

von Stromspannung (Gast)


Lesenswert?

Aha, console-based, na das ist doch schon mal gut, da musst du dich beim
Compilierversuch auf Windows nicht mit irgendwelchen Grafit-Toolkits
rumärgern und brauchst, wenn du über Cygwin gehst, keinen X-Server.

Bevor du mit dem Builder weitermachst, versuch erst einmal, wie schon
von Stefan beschrieben, herauszufinden, ob du das Cygwin so installiert
hast, dass auch der Compiler geht ;-)

Eine andere Option wäre, u. U. auch noch ein virtuelles Linux, a la
"VM-Ware".

von Stefan (Gast)


Lesenswert?

Bist du mit dem RFlash Tool sicher?

Mich macht die Erwähnung "Programmiertool für FZTAT Devices" stutzig.
Nicht dass damit nur bestimmte Flash-Bausteine, nämlich die mit diesem
speziellen Hitachi Protokoll programmierbaren, zugänglich sind... (H8
µC ???)

Es gibt für von Mitsubishi kommenden µC in der Renesas-Produktpalette
(M16C und R8C) weitere Quellen für Flashprogrammer. Eine Einstiegsseite
dafür ist die Seite von Thomas Fischl
http://www.fischl.de/thomas/elektronik/r8c/r8c_flasher.html

Die Ansteuerung unter Linux ist so:
./flash /dev/ttyS1 R8C blink.mot ff:ff:ff:ff:ff:ff:ff

Ich möchte nicht darauf wetten, dass die serielle Schnittstelle unter
Windows/Cygwin sooo einfach als /dev/ttyS1 verfügbar ist.

Wenn das EEPROM vom SH oder H8 dein Ziel ist, kann vielleicht der
Open SH/H8 Writer von Yukio Mituiwa weiterhelfen. Den gibt es im
Sourcecode (GPL) und sogar als Windows-Binary:
http://mes.sourceforge.jp/h8/index.html

In dieser Source sind übrigens die typischen Änderungen drin, um statt
/dev/ttyS1 die serielle Schnittstelle von Windows anzusprechen, was du
ggf. auf die RFlash-Sourcen übertragen kannst bzw. auch auf den
M16C/R8C-Flasher... Wenn du in der Richtung was vor hast, sag Bescheid.
Ich habe auch ein R8C/13 System und kann vielleicht helfen.

Eine weiterer M16C (und für R8C in der Betaversion) Flasher für Windows
ist übrigens auf http://www.m16c-flasher.de/ verfügbar. Allerdings
soweit ich erkennen kann ohne Sourcecode. Für kommerzielle Zwecke muss
eine Lizenz erworben werden.

Wie das Flash vom M16C programmiert wird, ist rel. einfach
herauszufinden:
http://www.eettaiwan.com/ARTICLES/2001OCT/PDF/2001OCT09_MEM_MPC_AN2156.PDF

In dem R8C Hardwaremanual steht entsprechendes zum R8C Flash.

von Anderas Häusler (Gast)


Lesenswert?

Hi Stefan

Das Problem ist tatsächlich, das ich die H8 Serie meine.
Für den M16C und R8S scheint alles kein Problem zu sein.

Der Link

http://mes.sourceforge.jp/h8/index.html

ist sehr hilfreich und wird mich hoffendlich ein Stück weiterbringen.

Im Rflash Tool habe ich übrigens in einer *.cpp Datei folgende Zeilen
gefunden:

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#ifndef _WINDOWS
#include "DataTypes.h"
#endif

könnte es allso doch sein, das sich das Projekt auch unter Windows
compilieren lässt?

Ich habe übrigens noch den MinGw Compiler entdeckt.
Das scheint ein Windows Compiler zu sein, mit dem man auch Gcc
erstellte Programme kompilieren kann.
Vielleicht komme ich damit auch ein wenig weiter.

Wünsche Euch allen noch ein schönes Wochenende.

Gruss Andy

von Stefan (Gast)


Lesenswert?

MinGW (www.mingw.org) ist ein GNU C Compiler (GCC) mit
Windows-spezifischen Bibliotheken (den MinGW Bibliotheken).

Die Cygwin Windows-spezifischen Bibliotheken sind im Bereich UNIX v.a.
Prozesskontrolle umfangreicher als die MinGW Bibliotheken. Aber ich
schätze, dass du diese Funktionen nicht brauchst.

Du kannst durch eine Commandline-Option vom GCC (-no-cygwin) unter
Cygwin auch die MinGW Bibliotheken einbinden lassen (sind dabei) und
von cygwin1.dll unabhängig werden.

Hast du schon überlegt, welches Betriebssystem in deiner Box laufen
soll? Vielleicht brauchst du letztendlich den Umweg Windows gar nicht,
wenn du z.B. in der Box ein embedded Linux verwendest...

von Andreas Häusler (Gast)


Lesenswert?

Auf der Box läuft kein Betriebssystem, dafür ist die CPU zu lahm.
(16Bit/24MHz)
Ich schreibe alle Routinen und Treiber für die Peripherie selber.
Die Box besitzt übrigens diverse Schnittstellen wie Ethernet, USB,
RS485, IRDA, RS232, One-Wire, DCF77 und über das Target Interface
könnte auch ISP Prozessoren von Atmel (AVR, AT89..)und Microchip
angeschlossen werden.
(Mit entsprechenden Software liesse sich dann auch ISP via USB
realisieren, da ja die serielle und paralelle Schnittstelle in neueren
Labtops nicht mehr unterstützt wird und desshalb viele alte Programmer
nicht mehr optimal zu verwenden sind.)

Vorerst muss ich die Box wie gesagt für die Renesas Familie fit
machen.

Werde mir mal diesen MinGW Compiler näher anschauen. Blicke zwar noch
überhaupt nicht durch, werde aber hoffentlich noch damit klarkommen.

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
Noch kein Account? Hier anmelden.