Hinweise zur Installation der R8C Software unter Windows 2003 --> Fehler -5006 ...
Dieser Beitrag ist für Leute gedacht, die bei der Installation der R8C Software unter Windows 2003 in folgenden Fehler "reinlaufen": Programme lassen sich nicht installieren: Error Code: -5006 : 0x80070002
Abhilfe schaffte nur das Kopieren der Installationsdateien auf die lokale Festplatte und das Umbenennen dieser in setup.exe.
Danach ließ sich die Software einwandfrei installieren.
Das zusätzliche Fenster, das "aufpoppt", wenn man die setup.exe startet ist von Windows und darf erst nach der Installation geschlossen werden. Unter Windows 2003 hat sich wahrscheinlich der interne Installer geändert!
Micha
Programm lief nur ein mal
Unter Options muss in FTD angeklickt sein:
Erase Program Before Program und AutoDisconnect, damit die RS232 beim nächsten Mal wieder frei ist. Sonst muss man FDT erst ganz verlassen und neu starten. Das ist überhaupt das Mittel der Wahl, wenn es mal klemmt.
R8C - ID Check Fehler
Die meisten Fehler werden durch das Betriebssystem verursacht. So melden z.B. Windows NT und Windows 2000 durch eine fehlerhafte Ausgabe-API versendete Zeichen, obwohl diese noch gar nicht draußen sind. Je schneller der Rechner ist, desto eher treten Probleme auf. Der Flashstart läuft deshalb z.B. unter Windows98 und Windows XP einwandfrei, während er unter NT und 2000 Probleme hat.
Der FDT wurde neu überarbeitet und läuft jetzt nur noch unter Windows XP problemlos.
Zum ID-Problem:
Der Bootloader des R8C lädt nach dem Kontakt mit dem Flashstart, FDT, HEW (mit E8) oder KD30 einen erweiterten Loader bzw. Mini-Monitor in das SRAM des R8C.
Beim Einschalten des R8c oder Reset prüft der Bootloader bestimmte Speicherstellen, ob sich ein ausführbares Programm im SRAM befindet und springt dort hinein. Der KD30 sowie auch der Flashstart (wahrscheinlich auch der FDT) führen im Betrieb öfter Software Resets aus um den Ursprungszustand der Register wieder herzustellen.
Hat das Programm im SRAM durch Betriebsspannungsprobleme oder durch fehlerhafte User-Programme (Debuggen mit dem KD30) einen fehlerhaften Inhalt, so kommt es zu seltsamen Effekten. Der R8C kommuniziert plötzlich nicht mehr mit dem FDT oder Flashstart; ID-Errors werden gemeldet usw.. Auch wenn man ständig zwischen KD30 und Flashstart wechselt, tritt dieses Problem auf.
So bekommt man das Problem wieder in den Griff: Einfach die MCU mal einige Minuten spannungslos machen. Am besten das Board auf ein Moosgummi stecken. Nach kurzer Zeit ist der Inhalt vom SRAM wieder schön durcheinander und der Bootloader möchte dieses wieder laden. Plötzlich funktionieren KD30, Flashstart und der FDT wieder.
Auch hier gibt es auch noch ein Problem mit dem ID:
Hat man sein eigenes Programm geflasht und möchte danach wieder den KD30 verwenden, so muss der ID des geladenen Programms "FF FF FF FF FF FF FF" sein.
Ist der ID anders, so kann der KD30 das User-Programm nicht automatisch löschen. Das gilt auch für den E8.
Abhilfe: Den R8C mit dem Flashstart oder FDT vorher löschen.
Übrigens, der KD30 flasht den R8C bei jedem Download. Wenn man im eigenen Programm darauf geachtet hat, dass der interne 8MHz Oszillator läuft, oder dass der externe 20MHz Quarz schwingt, braucht man nicht einmal ein Flash-Programm....
Gunther
Fehler beim Compilieren nach HEW Installation
Ich habe die HEW samt Compiler und FDT mit den Standardeinstellungen auf C: installiert und dann mal versucht ein kleines Testprogramm zu compilieren. Das hat soweit auch alles funktioniert. Die Programmierung mit FDT funktionierte auch und der Controller hat das getan was er sollte. Am nächsten Tag wollte ich dann das gleiche noch mal machen und da fing dann das Problem an. Der Compiler spuckte immer drei Fehlermeldungen aus obwohl ich das gleiche Programm übersetzen wollte.
Die Lösung des ganzen war dann, dass ich bei der Installation Administratorrechte auf C: hatte, die ich am nächsten Tag nicht mehr besaß. Der NC30-Compiler versucht beim Übersetzungsvorgang temporäre Dateien anzulegen (Variable TMP30). Wenn er das nicht kann, gibt es eine Fehlermeldung. Es empfiehlt sich also nach der Installation die Variable TMP30 auf einen Pfad zu setzen, auf dem man Schreibzugriff hat. Die entsprechende Einstellung findet man in der HEW unter Tools->Administration->Toolchain->Properties... ->Registerkarte 'Environment'-> TMP30
Ralf
Installation des FDT: Probleme mit dem Temp-Verzeichnis
Um Probleme mit angeblichem Speichermangel im Temp-Verzeichnis, sowie seltsame Zeichen bei der Installation zu beseitigen geht man so vor: Im Windows den "Start"-Button anklicken und dann auf "Ausführen..." klicken. Jetzt %temp% eingeben und dann die angezeigten Dateien löschen. Danach sollte die Installation funktionieren.
Gunther
Meldung: License expires in 60 days
Keine Sorge, bei mir sind die 60 Tage schon um. Bei mir steht jetzt:
Warning (ln30): License has expired, code limited to 64K (10000H) Byte(s)
Also 64 K darf ich noch, aber in den R8C/13 passen ja nur 16 K rein. Also geht alles weiter wie bisher.
Burkhard
Problem R8C und Debugger KD30
Ich vermute, bei meiner Testschaltung reagiert der 20MHz Quarz auf dem Board empfindlich. Ist die Unterseite der Lochrasterplatine zu nah am Labortisch stürzt der KD30 ab (reproduzierbar). Die Fingerspitze in der Nähe von Pin4 und Pin6 provoziert den gleichen Effekt.
Jens
Der KD30 verwendet immer den Quarz. Also wenn irgendwas den Quarz bremst, bricht die Kommunikation zusammen. Mit dem Finger müsste man es auch schaffen.
Dass der KD30 nicht mehr will, habe ich auch schon erlebt. Ursache war bisher z.B., dass der Pfad auf die Eingabedatei nicht stimmte. Und dann gibt es auch jede Menge Programme, die den KD30 stören, weil sie die Debug-Schnittstelle verwenden. Ganz wichtig ist auch, niemals Reset zu drücken. Burkhard
Ein Problem sind oft auch Virenscanner, die die Schnittstellen überwachen. Bitte nicht alle die Virenscanner ausschalten sondern nur besser Die Verbindung zum Netz trennen, wenn man debuggen will.
Alex
Ich habe die Versorgungsspannung (3,3V) besser abgeblockt (10uF) und die Leitungsführung auf der Rasterplatte geändert (TXD11) verlief nahe am Pin6 (Xin). Jetzt arbeitet der R8C deutlich besser mit dem KD30 zusammen.
Jens
R8C/13 Speicherbelegung
Wenn Du dich mal fragst, wo dein Speicher geblieben ist dann kannst du das nachschauen.
Es gibt in den Verzeichnissen Debug und Release eine Datei mit dem Namen deines Projekts und der Endung .map. Darin steht genau wo jedes einzelne Byte geblieben ist.
Du kannst dort z.B einen Bereich HEAP sehen. Den fragt die Oberfläche bei der Erstellung eines neuen Projekts ab und gibt 0x300 vor. Wenn man das übernimmt dann ist fast dein gesamter Speicher nur Heap. Nun brauchen wir aber bei unseren Programmen eigentlich keinen Heap. Der ist nur für malloc gedacht. Also am besten wieder verkleinern. Das muss man in den Einstellungen für Debug und Release getrennt vornehmen!
Olaf
Dateien des Compilers
Die sect30.inc Datei ist eine Include-Datei für das Assembler File ncrt0.a30. Also eine Definitionsdatei die ähnlich wie eine *.h-Datei für eine C-Quelle funktioniert. In der sect0.inc werden alle Speicherbereiche für den R8C festgelegt. D.h. es wird definiert wo Variablen und Code im fertigen Programm abgelegt werden. Weiterhin werden hier auch die Interrupt-Vektoren festgelegt. Die ncrt0.a30-Datei stellt den Startup-Code dar. Das bedeutet, dass diese Assembler-Datei den Einsprungpunkt für das spätere Programm darstellt. Hier werden z.B. bestimmte Variablenbereiche genullt und andere mit den Initialisierungswerten belegt. Zu guter Letzt ruft diese Datei die main()-Funktion auf.
Ralf
In r8csm_rev100.pdf findest Du eine Menge Befehle.
Oder zu C: rej10j0820_m16ccompiler_s.pdf und nc30wane.pdf auch auf der CD, was aber keine Kenntnisse in C ersetzt. Über die HEW bekommt man auch noch ne Menge zu lesen.
M16C-User
