www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik Glyn mit M16C - Wie bringe ich den Monitor richtig ans Laufen?


Autor: Jörg Koers (Firma: Robert Bosch GmbH) (joerg-koers)
Datum:

Hallo!

das Thema wurde zwar schon oft diskutiert, aber ich konnte nichts
passendes auf meine Fragestellung finden. Wär super, wenn mir jemand
weiterhelfen könnte.

Habe ein Glyn-Board mit einem M16C, den Debugger KD30 und eine zum
Controller passende Monitordatei M306NAFG.mot.

Ist es richtig einfach die mot-Datei zu flashen, danach mein Programm zu
flashen (danach den Programmierjumper entfernen) und dann den Debugger
zu starten?

Wenn ja, dann bekomm ich immer noch den Fehler "Communication Error -
Can't accept data. ERROR(16014)"

Ich bin echt ratlos.

Danke schon mal für die Hilfe!
Autor: Northernhessian (Gast)
Datum:

Hast Du auch den Reset Taster betaetigt?
Autor: Jörg Koers (Firma: Robert Bosch GmbH) (joerg-koers)
Datum:

Ja hab ich gemacht.
Autor: Michael X. (Firma: vyuxc) (der-michl)
Datum:

Ich hab den Monitor nie gebraucht, aber wenn du 2 Binaries in einen M16
schiebst dann mußt du dem Flashprogramm sagen auf welche Adresse er es
schieben muß. Für dein Testprogramm mußt du wohl die Adressen
relozieren.
Autor: Olaf (Gast)
Datum:

> Habe ein Glyn-Board mit einem M16C, den Debugger KD30 und eine zum
> Controller passende Monitordatei M306NAFG.mot.

Wie kommst du auf den KD30? Der Debugger ist doch heutzutage im HEW
integriert. Wenn das bei dir noch nicht so ist dann muesstest du ja eine
sehr alte Version haben. Dann wuerde ich bei Renesas erstmal die
aktuelle Umgebung runterladen.


> Ist es richtig einfach die mot-Datei zu flashen, danach mein Programm zu
> flashen (danach den Programmierjumper entfernen) und dann den Debugger
> zu starten?

AEh..nein. Gegenfrage, benutzt du den E8 oder nur eine serielle
Schnittstelle?

Das Prinzip ist so: (bei den aktuellen HEW-Versionen)
Sobald man die Oberflaeche startet und ein Project geoeffnet wird,
verbindet sich der Debugger mit dem Controller.

Ich benutze den E8, also geschieht das darueber. Wenn ich den SH7262
programmiere geht das ueber USB. Bei RS232 wird es vermutlich direkt
ueber RS232 gehen. Fuer jede der drei Anwendungen gibt es einen Treiber.
Ausserdem musst du beim erstellen eines neuen Projectes dem HEW sagen
das er bitte auch debuggen soll und dabei legst du auch fest womit das
geschieht.
Wenn du also z.B ueber die RS232 debuggst dann kann es sein das du
dafuer noch einen Treiber installieren musst. Ich koennte mir auch
vorstellen das der bereits Teil der aktuellen HEW-Installation ist.
Weiss ich jetzt leider nicht weil ich nur noch den E8 benutze. Du musst
aber auf jedenfall in einem Project den Debugger aktivieren.

Wenn du ueber RS232 debuggst dann musst du normalerweise einen Jumper
stecken und danach noch einmal Reset druecken. Ich meine aber es gibt
auch Boards wo das automatisiert wurde. Es empfiehlt sich also mal die
Unterlagen zum Board zu lesen.

Wenn dann die Verbindung steht so wird jedesmal nach dem neu uebersetzen
der Code in den Prozessor geladen. Etwas bloed ist allerdings das dies
nicht von selber geschieht wenn du HEW neu startest. Wenn du also morgen
das Project von heute nochmal aufrufst und ohne Aenderung am Code
nochmal laufen lassen willst, so wird der nicht von selber reingeladen.
Startet man dann einfach den Prozessor so haengt er sich weg.
Man kann das mot File aber auch von Hand reinladen wenn du mal darauf
klickst. Du siehst am Icon am mot-File ausserdem einen Pfeil wenn es
reingeladen wurde.


> Wenn ja, dann bekomm ich immer noch den Fehler "Communication Error -
> Can't accept data. ERROR(16014)"

Ueberpruefe mal was bei dir unter Debug->Debug-Settings->Target steht.
Passt das zu deiner Hardware?

Man trifft manchmal Leute die zu faul sind sich ein eigenes Project zu
erstellen. Wenn die immer die Projecte anderer Leute kopieren dann steht
da vielleicht noch E8 drin obwohl sie keinen haben oder umgekehrt.

Solltest du ueber einen USB-RS232 Adapter debuggen so benutze bitte
unbedingt eine aktuelle HEW Version! Die Versionen vor 3-4Jahren hatte
da irgendeine Macke ueber die ich mich damals auch sehr aufgeregt habe.
:-)

Olaf
Autor: gk (Gast)
Datum:

Also entweder
  Du flascht das Monitorprogramm und arbeitest dann mit dem KD30
oder
  Du flascht Dein Anwenderprogramm( und kannst dann nicht mit KD30
debuggen ).
gk
Autor: Olaf (Gast)
Datum:

>   Du flascht Dein Anwenderprogramm( und kannst dann nicht mit KD30
> debuggen ).

AEh..moment mal. Da muss man genauer unterscheiden was man meint.

In den Prozessoren ist immer ein kleines Programm fest eingebaut. Das
nutzt der KD30, egal ob extern oder in HEW integriert, um sich mit dem
Prozessor zu verbinden. Das ist also sozusagen der Bootloader.
Genauer gesagt teilt man dem Controller ja mit dem Jumper mit ob es den
Bootloader oder das eigene Programm im Flash nach einem Reset starten
soll. Deshalb muss man ohne E8 ja den Jumper stecken und dann Reset
druecken.

Wenn man dann ein Anwendungsprogramm ohne Debugmodus nutzt so kann der
Debugger das in den Prozessor laden, aber nicht debuggen.
Ich vermute aber mal, ich nutze ja den E8, das man nach dem reinladen
die Verbindung zum Debugger trennen muss, den Jumper zieht und dann
reset drueckt. Mit dem E8 uebernimmt der Debugger das fuer einen und man
kann sich das sparen.

Wenn man debuggen will, dann muss man das ja beim connecten mit dem
Controller angeben. Dann wird der Compiler einen Teil des Debuggers an
das eigene Programm dazulinken. Dadurch geht einem also etwas
Flashmemory und auch etwas Ram verloren. Man muss natuerlich aufpassen
das man nicht das Ram benutzt wo der Debugger arbeitet.
Aber selbst wenn man da einen Fehler machen wuerde, so wuerde sich der
Debugger erst mit dem Controller verbinden und das Programm reinladen.
Erst sobald man dann sein Programm laufen laesst wird es abstuerzen und
die Verbindung geht baden.

Olaf
Autor: Jörg Koers (Firma: Robert Bosch GmbH) (joerg-koers)
Datum:

Ich muss den KD30 Debugger in Verbindung mit dem Tool Manager verwenden,
da ich im Moment nichts anderes installieren kann mangels Admin-Rechten.

Ich habe jetzt mal den Monitor in den µC geflasht, anschließend Reset
und dann den Debugger starten. (Habe einmal mit gestecktem und einmal
ohne Programmierjumper versucht zu debuggen) ... nichts. immer noch der
Fehler. Habe eine ganz normale RS232-Verbindung.

Ihr meintet, dass man in seinem eigenen Programm noch Code hinzufügen
muss, damit der Debugger arbeiten kann?

Wie würde das dann aussehen bzw. was muss ich alles hinzufügen?
Autor: gk (Gast)
Datum:

Der geflashte Monitor übernimmt die Kommunikation mit dem Debugger. Im
Programm muss man keinen Code hinzufügen, Aber, man muss in der
sect30.inc
die Interrupt Vektoren für Uart1 hinzufügen einfügen, siehe Beschreibung
von Glyn. Oder man bastelt sich einen Monitor, der den DBG Interrupt
nutzt, dann braucht man nichts eintragen. Eventuell muss auch noch die
ncrt0.a30 angepasst werden.
Viel Erfolg gk
Autor: Olaf (Gast)
Datum:

> Du flascht Dein Anwenderprogramm( und kannst dann nicht mit KD30
> debuggen ).

Womit hast du das denn geflasht? Nimmst du dafuer einen extra seriellen
Lader? Wenn ich mich richtig erinner, ist schon was her das ich den KD30
einzeln benutzt habe, dann brennt er ja vorher seinen Monitor aber
danach sollte er sich mit dem controller verbinden koennen schliesslich
musste er sich ja bereits verbinden um etwas reinzuflashen.

> Ihr meintet, dass man in seinem eigenen Programm noch Code hinzufügen
> muss, damit der Debugger arbeiten kann?

Jaein, das macht die Oberflaeche fuer dich dann automatisch. Du musst
nur darauf achten das dein Code und dein Ram nicht mit dem des Debuggers
kollidieren. Wenn du aber erstmal nur eine kleine LED blinken laesst
sollte das kein Problem sein.
Lediglich beim Stack musst du darauf achten das der nicht da liegt wo
der Debugger sein Ram hat. Auch da macht HEW normalerweise vernuenftige
Vorgaben. Ich meine aber mal es haette da mal einen Bug gegeben. Ich
weiss aber nicht ob das auf deinen Prozessor zutrifft. Aber soweit bist
du ja sowieso nicht nicht.

BTW: Wenn du gezwungen bist eine alte Software zu benutzen, kennt die
denn bereit deinen Controller? Gibst du also den genauen Typ an? Daraus
leitet der Debugger ja ab wo er Ram und Flash benutzen kann.

> Aber, man muss in der sect30.inc die Interrupt Vektoren

Falls man den Startupcode in Assembler hat! Man kann das ja beim anlegen
eines neuen Projects entscheiden. Bei mir stehen dir Interrupts in
intprg.c.
Allerdings kann es sein das die alte Version mit externem KD30 das noch
garnicht konnte.

Ich kann nur wirklich nochmal dringendst zum updaten raten. Der HEW
kommt ja urspruenglich von Hitachi fuer ihre H8 Prozessoren und wurde
dann wohl von Renesas uebernommen und fuer die anderen Prozessoren
angepasst. Da gab es in der Anfangszeit immer mal ein paar Macken und
die auch noch abhaengig von dem Controller mit dem man arbeitet.
Mittlerweile laufen aktuelle Versionen aber ganz gut.

Mir ist da gerade noch was anderes eingefallen. Der Controller verwendet
ja eine ID damit ihn nicht jeder auslesen kann. Diese ID wird immer
gebraucht.
Wenn man die nicht setzt wird ein Defaultwert angenommen. Bei manchen
Programmen war das 0.0.0.0.0, bei anderen ff.ff.ff.ff.ff. Ich glaube
deshalb hatte ich damals auch schonmal Schaum vor dem Mund und wollte
mit einem dicken Hammer auf den Prozessor hauen bis ich da drauf
gekommen bin.

Olaf
Autor: Jörg Koers (Firma: Robert Bosch GmbH) (joerg-koers)
Datum:

Habe eingesehen, dass der ganze Kram zu alt ist.

Habe mir jetzt HEW mit der aktuellen Toolchain heruntergeladen und
installiert.

Jetzt stellt sich mir die Frage:
- Wie kann ich mit HEW debuggen? (Möchte ja schließlich mein Programm
direkt auf dem M16C debuggen und nicht nur auf dem Rechner simulieren.)

Welche Einstellungen habe ich dazu zu machen?
Autor: Olaf (Gast)
Datum:

> Welche Einstellungen habe ich dazu zu machen?

Du legst ein neues Project an und beantwortest erstmal alle
Fragen nach dem Prozessor wahrheitsgemaess.

Du entscheidest dich ob du Assembler StartupFiles moechtest
oder C-Source.

Dann kommt irgendwo eine Einstellung zum debuggen. Da musst du deinen
Debugger auswaehlen. Bei mir halt E8. Bei dir muesste es irgenwas
serielles geben wenn du keinen E8 hast. Vielleicht, das weiss ich nicht,
muss du noch einen extra Treiber installieren! Der Debugger ist bereits
Teil deines Systems, aber er braucht irgendeine Verbindung zum
Controller. Es ist wichtig das du da die richtige Wahl triffst.

Du musst ausserdem noch andere Dinge beantworten. Zum Beispiel ob du
einen Heap brauchst (malloc) oder wie gross deine Stacks sein sollen.

Wenn du das ueberstanden hast dann wars das schon. Du wirst, zumindest
beim E8, bei jedem Systemstart gefragt ob du Code unter der Controlle
des Debuggers laufen lassen willst, oder die fertige Applikation flashen
moechtest. Du kannst den Debugger auch von Hand zu oder abschalten.

Du musst auch nicht unbedingt alle Einstellungen beim anlegen eines
Projectes angeben. Man kann auch spaeter alles selber machen. Allerdings
muss man dann wuesst durch die Gegend klicken.

Ausserdem kannst oben in der Anwendung normalerweise zwischen Debug und
Release umschalten. Das heisst aber nicht unbedingt das du nur in Debug
auch Debuggen kannst! Es bedeutet einfach das die Oberflaeche zwei (oder
mehr) Einstellungen kennt. Du kannst also im Debugbetrieb komplett
andere Einstellungen (Stackgroesse, Position der Section usw) fahren als
im Releasebetrieb.

Ansonsten schau halt mal bei Renesas. Die haben wirklich sehr viele
Anleitunge mit vielen bunten Bildern drin. Sind nur manchmal etwas
schwer zu finden weil ihre Webseite ein ziemliches Chaos ist.

Olaf
Autor: Jörg Koers (Firma: Robert Bosch GmbH) (joerg-koers)
Datum:

Sorry, dass ich euch wahrscheinlich schon damit nerve, aber ich komm
nicht voran.

Nochmal ganz von vorne:

Zu meiner Hardware:
- Glyn Board mit M16C
- Serielles Kabel von X1 (UART1) zum PC

Wenn ich jetzt ein neues Projekt in HEW anlege, kann ich im Schritt 5
(Setting the Target System for Debugging) nur "M16C R8 Simulator"
auswählen.

Da bei Renesas so gut wie nichts beschrieben ist, geh ich davon aus,
dass dies nur ein Simulator ist, der nur auf dem PC läuft und den Chip
nachahmt ohne auf ihn zuzugreifen, oder?

Wenn ja, welches Tool von Renesas bräuchte ich zusätzlich, damit ich
vernünftig auf dem µC debuggen kann? (Auf der Downloadseite von Renesas
herrscht so ein Chaos, dass mich nicht zurecht finde)

Wenn nein, muss der Monitor vorher manuell geflasht werden?
Autor: Olaf (Gast)
Datum:

> Da bei Renesas so gut wie nichts beschrieben ist, geh ich davon aus,
> dass dies nur ein Simulator ist, der nur auf dem PC läuft und den Chip
> nachahmt ohne auf ihn zuzugreifen, oder?

Das vermute ich auch. Ich habs aber selber noch nie verwendet da reine
Simulation ohne externe Hardware nur selten Sinn macht.

> Wenn ja, welches Tool von Renesas bräuchte ich zusätzlich, damit ich
> vernünftig auf dem µC debuggen kann?

Dir muss noch irgendein Treiber fehlen. Leider kann ich dir nicht sagen
wie der heisst da ich den selber noch nicht gebraucht habe. Ich habe die
Problematik nur letztens durchgezogen weil ich den USB Treiber fuer den
SH7262 installiert habe. Der wurde naemlich auch nachtraeglich
installiert.

Ich wuerde so vorgehen:

1. Schauen ob es bei Renesas einen dedizierten Treiber fuer RS232 gibt.

2. Probieren von Renesas das Flashtool installieren. Die haben ein
   Programm das nur zum flashen da ist. Kann sein das der den Treiber
   mitbringt.

2.1 Bei Renesas Rulz nachfragen. Die Leute dort arbeiten fuer Renesas
und
    sollten das wissen.

3. Bei Glyn anrufen und fragen.

Wenn du mal unter Debug-Einstellungen kuckst dann kannst du da unter
Target sehen welche Treiber dein System enthaelt. Ich habe z.B in der
Firma da auch deutlich weniger Auswahl als Zuhause. Da muss ich also
irgendwann mal was installiert haben ohne mich da jetzt dran zu
erinnern. :-)

Olaf
Autor: gk (Gast)
Datum:

Also zum Debuggen über die RS232 Schnittstelle musst Du bei Debug
Settings M16C R8C FoUSB/UART auswählen, falls der Treiber nicht zur
Auswahl steht weiss ich auch erstmal nicht weiter. Eventuell legst Du
noch mal ein neues Projekt an. Vielleicht kannst Du da den Treiber
auswählen. Der Jumper wird übrigens nur zum Flashen gebraucht, also
Monitor und-/ oder  Anwenderprogramm. Danach wieder entfernen und Reset
betätigen. Zum Debuggen mit KD30 musst Du auch Ergänzungen in sect30.inc
(Interrupt Vektoren für Uart1) und ich glaube auch in der ncrt0.a30
durchführen. Das steht in der Glyn Beschreibung.

Viel Erfolg gk
Autor: Olaf (Gast)
Datum:

Ah....falls man einmal weiss wie das Dingen heisst:

M16C R8C FoUSB/UART

Findet man recht schnell eine Applikation von Renesas welche
die Benutzung erklaert:

Google:  rej10j1725_r8c2auartsw_u.pdf
         rej10j1610_m16cfousbsw_u.pdf

Allerdings habe ich diesen Treiber bei mir auch nicht installiert. Er
wird also auf jedenfalls schonmal nicht defaultmaessig installiert und
man muss ihn sich noch irgendwo besorgen.

Das Problem bei Renesas ist ja wirklich nicht das sie keine
Dokumentation haben, man findet sie bloss nicht so einfach.

Hier gibt es ein paar Infos dazu.

http://www.renesas.com/_full_product_info_/product...

http://tool-support.renesas.com/eng/toolnews/m16c_...

Angeblich soll das Teil wohl ab HEW4.03 integriert sein. Ich bin sicher
deutlich neuer und kann es trotzdem nicht finden. Aber wenn man mal nach
FoUSB sucht findet man etwas. Jedenfalls wenn ich es richtig verstehe
das ihr FoUSB nur ein USB-RS232 Adapter war. Die haben ja mehr
Programmiergeraete als manch anderer Prozessoren...

Olaf

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net