Hallo Leute, ich habe ein relative komplexes Programm auf dem M16C62P geschrieben. Dieses habe ich wärend der Programmierphase immer mit dem KD30 Debugger getestet. Das Programm läuft auch super stabil wenn ich es über den KD30 laufen lasse. Sobald ich es aber auf den Controller flashe, stürzt es immer ab. Kommischer Weise springt es dann immer auf den gleichen Punkt im Hauptmenü. Ich habe keine Ahnung warum, das Programm gerade an diese Stelle springt. Es es ist halt das erste Unterprogramm mit A was in der Renesas EDE ganz oben steht. Eventuell tut das der Linker auch in der Reihenfolge zusammen bauen. Kennt jemand die Initilisierungseinstellungen vom KD30 oder hat Jemand eine INI-Datei um dem Controller die identischen Einstellungen zu verpassen?
Für den KD30 müsse die Interruptvectoren für die Debug-Schnittstelle auf den Debugger zeigen. Flashst du das jetzt ohne Debugger, musst du diese Interruptvectoren evtl wieder ändern.
Danke für deine Antwort. Ich glaube auch, dass das mit dem Fehlenden Debugger zusammen hängt. Aber ich weiß nicht wie? Ich mach das ja über die serielle Schnittstelle und da ist in standalone-Betrieb ja überhaupt nichts angeschlossen. Also dürfte auch kein Interrupt ausgelöst werden. Aber ich gebe dir Recht, dass irgend etwas einen Sprung auf immer die selbe Programmstelle auslöst. Ich verstehe auchnicht was die EDE da schon von alleine für Code erzeugt um mit dem vordefinierten M16C62P zu kommunizieren. Mann stellt da ja sogar die Größe der Speicher genau ein. Kann mann sie die jeweiligen Einstellunge anzeigen lassen? Am besten in C, da ich mit dem AssemblerCode nicht so klar komm.
Alle Voreinstellungen liegen normalerweise in der ncrt9.a30 und sect30.inc.
Kann mir da noch Jemand was Genaueres sagen? Die Dateien habe ich wohl. Was im Einzelnen aber was bedeutet weiß ich leider auch nicht. Kann mir Jemand den Unterschied zu den Startdateien vom KD30 sagen? Bin schon etwas verzeifelt und mach damit auch schon Wochen rum. Danke für Eure Hilfe.
Eine Erklärung für die beiden Dateinen findest du auf eu.renesas.com . Ich mach das bei solchen Problemen immer so, ich kürze das Programm bis zum geht nicht mehr, also das nur noch ein Grundgerüst übrig bleibt und teste dann noch einmal. Geht es, wird ein Teil des Codes hinzugefügt und wieder getestet, usw.
Haste Du auch diee Prozessormoderegister/ Clockregister in Deinem Programm gesetzt ??? PLL evtl eingeschaltet ??? Dies wird nämlich durch das Monitorprogramm gemacht und man vergisst schnell das man im Release diese Grundeinstellungen selber vornehmen muss. Auch solltest Du mal überprüfen ob Du den INTB richtig setzt (INTB ist die Basisadresse der Int-Vec-Tabelle). Findest Du im KD30 im Register-Fenster.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.