Gast
#4812860
Seit einiger Zeit arbeite ich bei der Entwicklung von einem
Mikroprozessorsystem.
Als Mikroprozessor verwende ich pic18f2680 :
Programmspeichergröße:
64KB
RAM-Speichergröße:
3.25KB
EEPROM:
1024Bytes
Hardware habe ich schrittweise entwickelt. CAN, RS232 wurden an der
Hautplatine
platziert. Visualisierung mit 162A Display und Matrixtastatur:
Beitrag "Matrix Tastatur (Matrixtastatur) mit 74HC4051 und 162A Display."
Anzahl von I/o habe ich durch Multiplexschaltung erweitert:
digitale Ausgänge 16 stück,
digitale Eingänge 8 stück,
analoge Eingänge 8 stück.
Noch direkte einzelne I/O Ports stehen zu Verfügung.
Von Anfang an habe ich mir als Ziel gesetzt das alles unter beiden
Compiler: c18 und sdcc lauffähig zu machen. Und das ist gelungen. Jetzt
arbeite ich auf der ersten Anwendung: Steuerung für meine Heizung.
Bei compilieren mit c18 kam mal eine Meldung:
Error - section '.udata_Heizung.o' can not fit the section. Section
'.udata_Heizung.o' length=0x0000010c
C18 kann nur in einer Sektion nur Variable bis gesamter Länge 256
bearbeiten.Danach muss man die Anweisung bringen:
#pragma udata my_section_2
Jetzt kann man nächsten Variablen deklarieren.
Das kann etwas lästig sein. Bei sdcc existiert das Problem nicht aber
beim casting muss man sehr oft benutzen Makro __data , z.B (__data
*char). Wahrscheinlich wird dann erst richtige Adresse generiert.
Ins gesamt bin ich mit sdcc sehr zufrieden.
Gruß an die Entwickler!