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
Leider kenn ich µVision nicht, für diejenigen die es kennen wäre sicher die Version interessant, das gibt es ja schon fast 20 Jahre. Sicher versteht aber Keil mehr vom Thema als Conrad, weswegen ich die Grundeinstellungen nicht ändern würde. Der C164 hat knapp 2 kB IRAM ab F600 für GPRs, Stack und bitadressierbaren Bereich. Für ein einfaches Programm sollte dieses auch für Variablen reichen. Weiterhin hat er 2 kB XRAM ab E000. Das muss nach dem Reset erst freigeschaltet werden, was der Startupcode von Keil sicher selbst macht. Ist bei µVision kein Simulator dabei? Die C16x haben ein paar Fallstricke, die man leicht erkennt, wenn man ein kurzes Programm erstmal im Simulator durchsteppt.
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.