Forum: Mikrocontroller und Digitale Elektronik M16C mit KPIT GNU Compiler


von Michael H. (stronzo83)


Lesenswert?

Hallo zusammen,
ich habe hier ein Evalboard von Glyn mit einem M16C/62A Mikrocontroller 
von Renesas (M30624FGAFP). Das habe ich schon erfolgreich mit dem 
(leider auf 64kB begrenzen) Renesas Compiler verwendet und wollte jetzt 
auf den KPIT GNU Compiler (mit Renesas HEW) umsteigen.
Für den Einstieg habe ich ein einfaches Testprogramm, das ein paar 
Portpins toggelt und mit dem NC30 Compiler wie gewollt läuft mit dem Gnu 
Compiler übersetzt. Das ging, ich konnte es auch auf den Controller 
laden, nur leider war der herzlich wenig beeindruckt und hat keinen 
Mucks von sich gegeben.

Der Startup Code sieht für mich stimmig aus, so dass ich etwas ratlos 
bin. Hatte schon jemand ähnliche Probleme und konnte sie lösen? Oder hat 
sonst jemand einen Tipp für mich? Dafür wäre ich wirklich dankbar!

Viele Grüße
Michael

von nixKönner (Gast)


Lesenswert?

vllt. hilft eher einer, wenn du den code postest; oder das projekt als 
zip file?

von Michael H. (stronzo83)


Lesenswert?

Der Code ist alles andere als spannend, wie gesagt werden lediglich ein 
paar Portpins getoggelt.
Mir ist allerdings aufgefallen, dass beim NC30 ein 3kB großes mot File 
erzeugt wird, beim GNU kommt nur 1kB heraus...

Gruß
Michael

von Peter (Gast)


Lesenswert?

Glaskugel kaputt.

von Günther (Gast)


Lesenswert?

Nur am Rande: die 64 KB Grenze konnte man zumindest früher beim KPIT 
Compiler auc nicht überschreiten. Vielleicht gehts mit neueren Versionen 
ja.

von Northernhessian (Gast)


Lesenswert?

Ich kann mich nur 'nixKönner' anschließen, und Dich bitten, das Projekt 
als *.zip Datei mal hier reinzustellen. Dann kann man schauen, was Du wo 
in der HEW verstellt, bzw. nicht eingestellt hast.

von Michael H. (stronzo83)


Angehängte Dateien:

Lesenswert?

Hallo nochmal,
hier also ein Minimalbeispiel als zip.

Dasselbe mit dem NC 30 toggelt brav den Port.
Konfigurieren der System Clock Register usw. (ja an die protect bits 
habe ich gedacht) bringt leider nichts.

Hat jemand eine Idee?

Gruß
Michael

von Peter (Gast)


Lesenswert?

In der main() steht:

  pd10.byte=0xff;

  while (1)
  {
    p10_0=~p10_0;
  }

Probier mal statt der ersten Zeile dies hier:

  pd10_0 = 1;

Und in der while Schleife entweder nur

  p10_0 = 1;

oder

  p10_0 = 0;

Wenn eine von beiden Zeilen die LED zum Leuchten bringt, dann ist der 
Wechsel zwischen on/off einfach zu schnell und du brauchst ein delay in 
der Schleife. Wenn nicht hast du evtl. den falschen Pin erwischt? Oder 
es fehlt ein weiterer Hardware-Init irgendwo (kenn mich mit M16C nicht 
wirklich aus).

Funktioniert eines der Beispiele von hier?

http://www.kpitgnutools.com/Sample_Tutorials.html

von Volker Z. (vza)


Lesenswert?

Hallo Michael,
ein blick in die MAP-Datei verrät mir das die Fixed-vektor-table am 
Anfang deines Flashbereiches liegt. Sie muss aber an das Ende (0x0FFFDC) 
des Flasches stehen.

Mit deinen Speichersegmanten stimmt was nicht.

Da ich NC30 (ohne HEW) benutze kann ich dir hier nicht weiter helfen.

Volker

von Michael H. (Gast)


Lesenswert?

Hallo Volker,
sowas in der Art hatte ich schon vermutet bzw. befürchtet. Mal sehen ob 
ich das hinbiegen kann :(
Oder hat jemand mit Erfahrung einen Tipp?
Danke jedenfalls für den Hinweis.

@ Peter
Danke für deine Mühe, aber daran liegt es nicht. Ob ich alle Portpins 
auf Ausgang setze oder nur einen ändert nichts und da keine LED sondern 
ein Oszi am Pin hängt sehe ich in jedem Fall, ob sich was tut oder 
nicht.
Ich bin kein Renesas oder Controller Anfänger, lediglich mit dem GNU 
Compiler hatte ich noch nicht zu tun.

Gruß
Michael

von Michael H. (stronzo83)


Lesenswert?

Gerade habe ich mal wieder Zeit gefunden, dem Problem weiter auf den 
Grund zu gehen. Dabei habe ich gemerkt, dass das vom NC30 Compiler 
erzeugte map File die fixed vector Tabelle auch am Ende zeigt:

# SECTION    ATR TYPE    START  LENGTH
fvector      ABS ROMDATA 0FFFFC 000004

Hat noch jemand eine Idee? Irgendetwas muss ich wohl noch grundsätzlich 
falsch machen.
Mit den Standardeinstellungen der Toolchain sollte doch ein lauffähiges 
Programm zu erstellen sein!?

Bin für jeden Tipp dankbar.

Gruß
Michael

von Ludger (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe zwar keine 62A sondern nur noch 62P Prozessoren auf meinen 
Boards, jedoch der Angehaengte Blinker aus den Samples von KPIT geht :-)

Meine GLYN Boards haben aber die LED an Port 5 Bit 0.

von Michael H. (stronzo83)


Lesenswert?

Danke, werde ich mir ansehen sobald ich dazukomme.
Momentan bin ich erstmal beim NC30 geblieben, mit dem ich bestens 
zurechtkomme.
Falls mich das mit dem M16C in Verbindung mit dem KPIT noch weiter 
ärgert, werde ich vielleicht auch mal einen meiner R8C damit versuchen.

Gruß
Michael

von Michael H. (Gast)


Lesenswert?

Mit einer neuen Version der KPIT toolchain lief jetzt alles auf Anhieb 
ohne Probleme - wahrscheinlich war in der alten Installation irgendwo 
der Wurm drin. Mit dem Renesas Compilter programmiert es sich zwar 
komfortabler, aber da ich mit Gnu die volle Codegröße meines M16C nutzen 
kann, bleibe ich jetzt auch dabei.

Gruß,
Michael

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.