Hallo alle zusammen, verwendet noch jemand den SDCC für den Z80? Ich mache gerade meine ersten Schritte mit dem SDCC und habe eine Frage die ich nicht per Goolge lösen kann. mit welcher Linkeroption lege ich die Lage das SRAMS fest? egal was ich probiere, Alle Variablen starten bei 0x0000. bin für jeden Tip dankbar Werner
SDCC on Z80
Apr 23, 2004
10 Replies
Werner Brennecke wrote: : Hallo alle zusammen, : verwendet noch jemand den SDCC für den Z80? Ich mache gerade meine : ersten Schritte mit dem SDCC und habe eine Frage die ich nicht per : Goolge lösen kann. : mit welcher Linkeroption lege ich die Lage das SRAMS fest? : egal was ich probiere, Alle Variablen starten bei 0x0000.
Bei mir legt --xram-loc 0x8000
die Daten ab 8000h ab.
Am 23 Apr 2004 14:02:16 GMT, "Peter Heitzer" schrieb:
Bei mir eben leider nicht. Wenn ich mir die .lst datei anschaue, beginnt der Datenbereich immer bei 0x0000. Si langsam habe ich das Gefühl, einen Denkfehler zu haben :-)
1 ;-------------------------------------------------------- 2 ; File Created by SDCC : FreeWare ANSI-C Compiler 3 ; Version 2.3.8 Fri Apr 23 12:50:07 2004 4 5 ;-------------------------------------------------------- 6 .module test 7 .optsdcc -mz80 8 9 ;-------------------------------------------------------- 10 ; Public variables in this module 11 ;-------------------------------------------------------- 12 .globl _main 13 .globl _a 14 .globl _i 15 ;-------------------------------------------------------- 16 ; special function registers 17 ;-------------------------------------------------------- 18 ;-------------------------------------------------------- 19 ; ram data 20 ;-------------------------------------------------------- 21 .area _DATA 0000 22 _i:: 0000 23 .ds 2 0002 24 _a:: 0002 25 .ds 10 26 ;--------------------------------------------------------
Werner Brennecke wrote: : Am 23 Apr 2004 14:02:16 GMT, "Peter Heitzer" schrieb:
: Bei mir eben leider nicht. Wenn ich mir die .lst datei anschaue, : beginnt der Datenbereich immer bei 0x0000. : Si langsam habe ich das Gefühl, einen Denkfehler zu haben :-) Das glaube ich auch. Das Listing ist vom Assembliervorgang und der ist _vor_ dem Linken. Die Adressen sind relativ zum Anfang des Segments (hier .area _DATA) zu verstehen. : 20 : ;-------------------------------------------------------- : 21 .area _DATA : 0000 22 _i:: : 0000 23 .ds 2 : 0002 24 _a:: Wenn du wissen willst, wo deine Daten im gelinkten Programm liegen, mußt du schon das map File anschauen.
Peter Heitzer, meinte...
den Paramter --xram-loc gibt es nur bein 8051 und hat beim Z80 keine Wirkung.
Peter Heitzer, meinte...
da muss man erst mal darauf kommen :-) Zumindest ist der richtige Parameter
--data-loc 0x8000
dann stimmt es auch mit den .MAP File.
vieles dank für die Hilfe
Werner Brennecke wrote: : Peter Heitzer, meinte...
: den Paramter --xram-loc gibt es nur bein 8051 und hat beim Z80 keine : Wirkung. Bei sdcc 2.4.0 funzt es. Vermutlich wird --xram-loc mit --data-loc beim Z80 gleichgesetzt. --data-loc ist aber der offizielle Parameter.
Am 26 Apr 2004 14:30:45 GMT, "Peter Heitzer" schrieb:
das ist möglich. Es ist sowieso ziemlich schwierig, sich in den SDCC/Z80 einzuarbeiten. Es gibt fast keine Beispiele und die Doku bezieht sich bis auf ein paar Zeilen nur auf den 8051. Dafür ist er aber kostenlos :-)
Vielen dank für die Hilfe
Werner Brennecke wrote: : Am 26 Apr 2004 14:30:45 GMT, "Peter Heitzer" schrieb:
: das ist möglich. Es ist sowieso ziemlich schwierig, sich in den SDCC/Z80 : einzuarbeiten. Es gibt fast keine Beispiele und die Doku bezieht sich : bis : auf ein paar Zeilen nur auf den 8051. : Dafür ist er aber kostenlos :-) Z80 ist auch für einen Neueinstieg nicht unbedingt die erste Wahl, da man für ein Minimalsystem im Vergleich zum 8051 doch eine Menge mehr Bauteile braucht. Wer aber den Z80 schon kennt und bereits fertige Platinen besitzt, der schmeißt dafür jeden 8051er weg.
Schaue mal nach "comp.os.cpm"; dort wird von einigen unterschiedlichen C-Compilern gesprochen; entweder 'gut', 'kostenlos' oder gar 'beides'. Je nach dem, ob Du wirklich die speziellen Z80-Befehle brauchst (wenn der Compiler sie überhaupt benutzt :-) tut es auch einer für 8080...
Bitte produziere weniger TOFU...
Gruss, Holger
Du kennst wahrscheinlich die neuen Z80-Prozessoren nicht. Hier
formatting link
gibts ein Demoboard mit Ethernet, JTAG Hardware-Debugger (nicht exakt JTAG, sondern ZDI, aber der Unterschied spielt hier keine Rolle), RTOS mit TCP/IP, HTTP, SNMP etc etc, C/Assembler Entwicklungsumgebung mit Visual Studio like IDE für 99$.
Mit freundlichen Grüßen
Dipl.-Ing. Frank-Christian Krügel
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required