M16C/62P ID Probleme

Gast #1352916
Lesenswert?

Hallo zusammen,

ich habe eine kleine Testplatine aufgebaut wo ein M16C/62p M30622F8PFP 
drauf ist. Heute wollte ich das ding zum ersten mal mit dem Tool 
Flashsta.exe flashen. Das Tool hat mich nach dem Pfad der .mot gefragt 
und nach der Id. Für die ID hab ich 7 mal FF eingegeben. Auf Ok gedrückt 
und mit Blank-Check, Program, Read (verify) geflasht. Alles super und 
hat geklappt.
Beim 2.Versuch das Ding zu flashen konnte ich mich mit der ID 7 mal FF 
nicht mehr am Controller anmelden . Es erscheint immer "ID not matched".
Also muss ich irgendwie die ID unbewusst geändert haben. Aber ich weis 
nicht wie und wo . Vielleicht hat die .mot die ich geflasht hab in den 
falschen Speicherbereich geschrieben, weil vielleicht beim kompilieren 
was falsch eingestellt war.

Falls jemand mehr weis als ich Bitte melden
Gast #1352959
Lesenswert?

> Vielleicht hat die .mot die ich geflasht hab in den
> falschen Speicherbereich geschrieben,

Das ist zumindest theoretisch denkbar weil ja die IDs
im Flashrom liegen. Wenn ich mich richtig erinnere kann
man das ganz gut schaffen wenn man die Tabelle fuer IRQs
an die aeh 'richtige' Stelle liegen hat.

> Aber ich weis nicht wie und wo

Das darfst du jetzt rausfinden. :-) Wenn dir klar ist was du
da wo reingebrannt hast dann kannst du ja die richtige ID
aus deinem mot-file auslesen.
Vorher kannst du es ja mal mit 7x 0x00 als ID probieren.
Danach ist wohl denken angesagt, oder ein neuer Prozessor.

Aber nicht aufgeben, der Prozessor ist schoen wenn man den
ID-Unsinn erst mal im Griff hat.

Olaf
Gast #1353520
Lesenswert?

Wie schon erwaehnt, die IDs liegen im Flashrom. Und ganz da in der Naehe 
liegen die Vektoren fuer die Interrupts. Jedenfalls per 
Defaulteinstellung.
Ich koennte mir vorstellen das du dir die IDs uebergebraten hast wenn 
dein Programm eine solche Tabelle enthaelt.

Olaf
Gast #1358696
Lesenswert?

die Lösung ist ganz einfach:

M16 im Urzustand = LEER = 0xFFFF

Die IDs liegen im letzten Block und teieln sich mit verschieden INTs den 
Speicherplatz (z.B. NMI, RESET,...).

Programmiert man ein neues Programm hinein, wird die Speicehrstelle der 
IDs mit der Vektoradresse desd jeweiligen INTs überschrieben (mit 0x00). 
Will man eine eigene ID generieren, kann das z.b. im Compiler mit 
vorgegeben werden. Man kann auch eine Datei mit xx.id generieren (id 
steht für den gleichen Name wie das Programmfile) in der die IDs 
eingetragen sind. Soll 0xFF bestehen bleiben, einfach in der Startup bei 
den entsprechenden Vektoren mit FF odern.

Mit dem Flash-Tool M16C-Flasher geht das übrigens deutlich einfacher und 
komfortabler.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren