Hallo, ich habe ein Problem mit dem PIC 16f627 und SDCC. Ich wollte heute versuchen ein Programm zu Kompilieren welches dann auf dem 16f627 läuft. Das Beispiel Programm habe ich von http://www.micahcarrick.com/04-25-2005/pic-c-programming-linux.html genommen welches ja die Kompilierung in C ermöglichen soll. SDCC deswegen da es OpenSource ist und uneingeschränkt im vergleich zu anderen lösungen nutzbar ist und auch unter Linux verfügbar ist. Auch wenn die anleitung des Kompilierens für Linux ist so sollte der Programmcode ja auch unter Windows Kompiliert werden können Wie bin ich vorgegangen ? -Code genomen in eine Datei reinkopiert und diese mit endung c versehen. (auch aus der tar.gz datei) -Die Datei nach c:\programme\sdcc\bin kopiert -Über die Komandozeile in das Verzeichniss c.\programme\sdcc\bin geganen -Dort den Befehl -------------------------------------------- (Eigene Datei erstellt und den Code reinkopiert) C:\Programme\SDCC\bin>sdcc --debug -mpic14 -p16f627 test.c test.c:22: syntax error: token -> '0x3FFB' ; column 7 ############################################ (Die c Datei aus der Tar.gz genommen) C:\Programme\SDCC\bin>sdcc --debug -mpic14 -p16f627 toggle_led.c Der Befehl "gpasm" ist entweder falsch geschrieben oder konnte nicht gefunden werden. C:\Programme\SDCC\bin> ------------------------------------------------ Nun Stehe ich da mit meinem Kurzen Hemd und weiss nicht weiter. Hat von euch evt jemand einen Rat ? Gruss Armin
>Der Befehl "gpasm" ist entweder falsch geschrieben oder >konnte nicht gefunden werden. Du musst die gputils auch noch installieren.
Hallo Holger, danke für die schnelle antwort. Ich habe nun das gputils installiert. Dann habe ich das gpasm in den Gleichen Ordner kopiert. Damit blieb dann die Fehlermeldung das das Programm unbekannt ist aus. Jedoch erhielt ich nun die Meldung C:\Programme\SDCC\bin>sdcc --debug -mpic14 -p16f627 toggle_led.c toggle_led.asm:12:Error [179] Unable to open file "p16f627.inc" - No such file or directory Ich habe dann die Headerdatei p16f627 von den gputils ebenfals in den gleichen Ordner kopiert und erneut den Befehl eingegeben. C:\PROGRA~1\SDCC\bin>sdcc --debug -mpic14 -p16f627 toggle_led.c error: linker script not specified Jetzt will er irgendwas von einem Linker ? Gruss Armin
Ich weiß, das sind alte Fragen. Armin schrieb: > test.c:22: syntax error: token -> '0x3FFB' ; column 7 Die Initialisierung mit einer Adresse per "at" heisst nun (sdcc-snapshot-i586-mingw32msvc-20131123-8897) offenbar "__at". Armin schrieb: > Jetzt will er irgendwas von einem Linker ? sdcc ruft auch gleich den Linker aus GPUTILS auf. Ich nehme an, wenn da was mit der Installation nicht ganz stimmt (Pfade), braucht er eine zusätzliche Angabe. Evtl. kommt die normalerweise auch aus einem Makefile? Man kann aber dem Linker das Skript angeben, über den Umweg sdcc, z.B.:
1 | sdcc-snapshot-i586-mingw32msvc-20131123-8897\sdcc\bin>sdcc --use-non-free -mpic14 -p16f684 -V main.c -Wl -s16f684_g.lkr |
Zur Warnung
1 | main.asm:1215:Message[312] Page or Bank selection not needed for this device. No code generated. |
gibt es zwar einen Bugreport, aber keine Lösung. Anscheinend kann man es ignorieren?
try step by step e.g. CC=C:\SDCC\SDCC\bin\sdcc.exe AS=C:\gputils\bin\gpasm.exe LN=C:\gputils\bin\gplink.exe FAMILY=pic14 PROC=16f84 SRC=main.c bystep: # compile only $(CC) -c $(OPTS) -m$(FAMILY) -p$(PROC) $(SRC) $(AS) -o main.o -c main.asm $(LN) -C -I"C:\SDCC\bin\..\lib\pic14" -I"C:\SDCC\bin\..\non-free\lib\pic14" -s16f84_g.lkr -w -r -o main main.o libsdcc.lib pic16f84.lib
OPTS=--use-non-free --no-extended-instructions --out-fmt-ihx
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.