Gast
#1952566
Hallo liebes Forum, kurz zu meinen technischen Randbedingungen: (1) Hardware: SAF-C164CI-8EM (StartKit "C-Control II", 1KB-RAM (!!!)) (2) IDE: Keil uVision V4.00a (3) Flasher: Infineon Memtool 3.4.1 via COM1 Problembeschreibung: Ich würde sehr gerne das mir vorliegende StarterKit dafür verwenden, um eine Schrittmotorenanwendung zu realisieren (uC für Treiber plus Einlesen von Encoder). Nun habe ich Schwierigkeiten, einfachste Programm (z.B. Bitwackeln an P1H.0) auf dem Target nach erfolgreichem Kompilieren mit uVision und erfolgreichem Flashen mittels Memtool (BOOT-Modus, MemoryDevice: OnChip OTP ROM) nach Reset zum Laufen zu bekommen. Habe ich denn noch etwas Grundlegendes übersehen? Meine Einstellungen bei Keil lauten wie folgt: (I) Device: C164CI (... 2K(4K) Bytes On-chip RAM ...) (II) Target: 20MHz, Memory Modell=Small, OS=None, ExternalMem(RAM)=0x80000-0x8FFFF (III) Output: HEX-386 (IV) L166 Locate: Use Memory Layout from Target Dialog (*) Ich sehe eine Diskrepanz zwischen den 1KB-RAM (Handbuch Fa. Conrad) und den 2KB-RAM von Keil. Was ich nun schon versucht habe, ist unter (IV) den Haken zu deaktivieren und die Speicherverteilung selbst vorzunehmen (Quelle: Quick Start for the C164CI Starter Kit): NCODE (0x200-0x7FFF), NCONST (0x4000-0x7FFF), NDATA (0xF600-0xFDFF), NDATA0 (0xF600-0xFDFF) Fragen hierzu: - Sind die oben genannte vier Bereiche valide und ausreichend für mein Target? Was ist z.B. mit SDATA, etc.? - Welchen Bereich umfasst dann die C166 Variable Init Tables (Default: 0x000000 - 0x007FFF)? Des Weiteren habe ich eine Frage zum Monitoring: Unter... (V) L166 Misc: Reserve=0x8-0xB, 0xAC-0xAF habe ich Speicher für den Monitor reserviert (Quelle: Quick Start for the C164CI Starter Kit). Passt diese Einstellung zu meinem speziellen Target? Beim Kompilieren in Keil gibt es jedenfalls keine Fehlermeldung. Wenn ich nach (\Keil\C166\Monitor\README.txt) mir spezifische *.BOT und *.MON (angepasster Speicherbereich für DATA_START=0E900H und CODE_START=0EB00H plus angepasste Startadressen für ADDRESSX) erzeuge, bekomme ich jedoch beim Debuggen die Fehlermeldung "MONITOR ERROR 3: CANNOT WRITE TO ADDRESS E7AAAA", welche Adresse auch nicht mehr im Speicherbereich liegt. Woher kommt diese Adresse? Bin leider so langsam mit meinem Latein am Ende... bitte um Eure Hilfe. Danke und Grüße soweit aus KA, Marko