M16C/62P ID Probleme

Gast #1352916
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
> 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 #1353259
Super Olaf,

mit ID 7 mal 0x00 hats hingehauen weis nur nicht
warum aber jetzt kann ich mich wieder anmelden.
Und das erste Programm führt der Controller auch aus.

Super, Danke
Gast #1353520
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
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.