Forum: Mikrocontroller und Digitale Elektronik Startprobleme mit C164CI und Keil uVision4


von Marko (Gast)


Lesenswert?

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

von Guido (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.