Forum: Mikrocontroller und Digitale Elektronik M16c


von Adrian (Gast)


Lesenswert?

Hallo,

ich arbeite seit kurzem mit dem Evaluationboard M16C von Glyn und habe
noch wennig Erfahrung. Ich benutze den NC30 Compiler und den KD30
Debugger. Nachdem ich ein Programm in den KD30 geladen habe, und step
by step durchlaufen möchte bleibt das Programm bei der Datei ncrt30
nach dem letzten Aufruf "ldintb #VECTOR_ADR" hängen und die
Verbindung zum EVB bricht ab.
Hat jemand eine Ahnung woran es liegen kann damit ich die Fehlersuche
einschränken kann? ( Ein anderes Programm (first.c aus dem example von
Tasking C-Compiler) lief jedoch einwandfrei.)

mfg,

Adrian

von MooseC (Gast)


Lesenswert?

Der Debugger benutzt die Interruptvektoren für die UART1
Receive/Transmit. Vermutlich stimmt da Deine neue Vektortabelle nicht
mit der des Debuggers überein (hast Du daran herumgespielt?). Wenn Du
den KD30(8) nutzen willst und die Vektortabelle veränderst, solltest Du
darauf achten das die nötigen Einträge für den UART1 erhalten bleiben.

MooseC

von Adrian (Gast)


Lesenswert?

Eigentlich habe ich daran nichts gemacht,werde aber trotzdem da mal
nachschauen. Ich melde mich wieder. Danke

mfg,

Adrian

von ralf (Gast)


Lesenswert?

ändere mal in ncrt0.a30 die adresse der vectortabelle,
weil der monitor jetzt dort wohnt.

z.b.
VECTOR_ADR   .equ  0fbd00h ; vorher wars die 0ffd00h

vergiss den eintrag inder sect30.inc nicht.

.lword  0FF900h        ; uart1 transmit(for user)(vector 19)
.lword  0FF900h        ; uart1 receive(for user)(vector 20)


ralf

von Adrian (Gast)


Lesenswert?

So habe jetzt beides wie oben beschrieben geändert. Leider konnte der
Fehler nicht behoben werden. Das merkwürdige dabei ist, dass der nc30
meiner Meinung nach ohne Fehler compiliert, sobald ich aber den Tool
Manager einsetze erscheint jedes mal die Fehlermeldung

ncrt0.a30 193 Error (ln30): .\ncrt0.r30 : '_main' value is
undefined.

Der KD30 bleibt wie im ersten Beitrag beschrieben weiterhin hängen und
bricht die Verbindung ab.

Da ich noch ein Anfänger bin, habe ich Probleme einige Programme zum
laufen zu bringen. Kann mir vielleicht jemand Schritt für Schritt
erklären wie ich ein Programm z.B das LED_Toggle welches sich auf der
GLYN CD-ROM befindet, erfolgreich in das EVB laden und simulieren kann?


Sobald ich das Programm(LED_Toggle) komplett von der CD übernehme incl.
der ncrta30 und sect30 Dateien, gibt es keine Probleme beim compilieren
und debuggen. Sobald ich aber nur die C -und H-Dateien übernehme mekert
der Compiler schon. Was muss ich tun um die Dateien zum laufen bringen.
Muss ich die ncrta30 und sect30 sowie die Batch-Datei selbst erzeugen
oder wird es automatisch erzeugt?

mfg,

Adrian

von Dietmar (Gast)


Lesenswert?

Hallo Adrian

hast du auch ein *.mot file erzeugt im Toolmanager erzeugt?
lmc308 <filename>

Gruß

Dietmar

von Adrian (Gast)


Lesenswert?

Hallo Dietmar

das habe ich nicht, ich dachte die lmc30 wird von nc30 zur verfügung
gestellt, oder?

mfg,

Adrian

von Dietmar (Gast)


Lesenswert?

Hallo Adrian,

ich denke auf deiner Demo CD sind auch einige Programme, die laufen.
Wenn du den TM benutzt dann lad doch mal ein *.tmk file (Projektfile)
dann siehst du alle files, die der compiler benötigt.
Außerdem hast du dei Möglichkeit bei Erstellung eines Projektes
entweder die default ncrt0.a30 oder eine selbst gewählte ncrt0.a30
bestimmen. Dies solltest du machen, wenn du ein Projekt ordnungsgemäß
compiliert hast. Dann kopierst du diese STartdateien in das neu
erstellte Verzeichnis . Beim Projekt erstellen mußt du dann alle
Dateien die für dieses Projket gelten sollen auch im Toolmangager
auswählen. Nicht zu vergessen den Befehl lmc30 0der lmc308 (den lmc308
gibt es für die M32C MCU, ich nehme an, daß bei deiner MCU ein anderer
file notwendig ist).
Jedenfalls erstellt dieser ein *.mot file im Anschluß an den
Compiliervorgang. Damit kannst du dann deine cpu flashen.
Im TM auf all gehen,  mit der rechten Maustaste
"edit item " , dann add command und im Fenster dann ein neues
KOmmando erstellen.
New: lmc308 <projektname> ( oder lmc30 <projektname> )eintragen.
lmc30 sollte bei dir im selben bin Verzeichnis stehen, wo der Compiler
steht.

Gruß

DIetmar

von ralf (Gast)


Lesenswert?

> ncrt0.a30 193 Error (ln30): .\ncrt0.r30 : '_main' value is
> undefined.

hier fehlt die main() funktion. mach mal eine.

> hast du auch ein *.mot file erzeugt im Toolmanager erzeugt?
> lmc308 <filename>

für das debuggen braucht er das noch nicht, später schon.

unter command steht anfangs nur:
$(LN) @$(ODINCMD)\$(LNLIST)

hinzufügen tust du das:
$(LMC) $(OUTDIR)\$(ABSFILE)


ralf

von Adrian (Gast)


Lesenswert?

HAllo,

so habe jetzt endlich den KD30 zum laufen gebracht. Es lag doch an der
Vector Adresse (Danke Ralf). Die habe ich jetzt geändert und es läuft.

Jetzt muss ich noch den TM zum laufen bringen. Ich melde mich sobald es
läuft oder ich nicht weiter komme.

Gruß

Adrian

von Adrian (Gast)


Lesenswert?

Da bin ich wieder,

so jetzt kann ich auch endlich mit dem TM compilen, muss aber noch die
*mot Datei erstellen.

Muss ich jetzt im project editor auf "all" rechte Maustaste und dann
auf Command um die $(LMC) $(OUTDIR)\$(ABSFILE) hinzufügen?

mfg,

Adrian

von Dietmar (Gast)


Lesenswert?

@Adrian,

es gibt viele Wege.
Geh mit der rechten MAustaste auf all, dann edit item
add command und dort ein neues Kommando erstellen(new).
lmc projektname.

Dietmar

PS: Ich weiß jetzt nicht genau wie der file bei dir heißt:
    lmc oder lmc30, bei mir lmc308 aber für M32C83,
    Schau doch mal im bin verzeichnis nach

von Dietmar (Gast)


Lesenswert?

@ Adrian,

Variante von Ralf ist besser.
Also auf <projekt>.x30 gehen, rechte maustaste,
edit item, add command, new command
und $(LMC) $(OUTDIR)\$(ABSFILE) eintragen.
Anhand der Variablen $LMC weiß dein compiler, welchen
file er nehmen muß.

Gruß

Dietmar

von Adrian (Gast)


Lesenswert?

Hallo Dietmar,

so jetzt habe ich es endlich. Es läuft. Danke euch allen für die
erfolgreiche Unterstützung.

Gruß

Adrian

von Dietmar (Gast)


Lesenswert?

Schön das es läuft.

Gruß

Dietmar

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.