Forum: Mikrocontroller und Digitale Elektronik sdcc, cin2h.pl fuer PIC16f5x oder PIC16f84 - Einstiegshuerden :-/


von Stephan (Gast)


Lesenswert?

liebe Leser,

  (ich puste hier etwas Staub von den Regalen...)

  ich moechte mit sdcc fuer PIC16f5x (allenfalls PIC16f84) kompilieren, 
habe aber Einstiegshuerden.

  """apt-get install gputils sdcc""" hat mir erfolgreich die Werkzeuge 
auf mein Lubuntu 14.04 LTS geholt: sdcc meldet sich mit 3.3.0, was neu 
genug sein duerfte.

  Nun versuche ich gemaess diverse, aeltere Tutotials zu pruefen ob die 
libs in Reichweite sind:

"""
$ cat test_headers.c

#include <string.h>
char str1[10];
void main(void) {
 strcpy(str1, "testing");
}

$ sdcc --verbose --debug  --use-non-free  -mpic14 -p16f84 test_headers.c
Processor: 16f84
Using devices from 
/usr/bin/../share/sdcc/include/pic14/pic14devices.txt.
sdcc: Calling preprocessor...
sdcc: Generating code...
sdcc: Calling assembler...
sdcc: Calling linker...
libsdcc.lib: No such file or directory

$  find /usr/share/sdcc/ -name libsdcc.lib
/usr/share/sdcc/lib/ds390/libsdcc.lib
/usr/share/sdcc/lib/ds400/libsdcc.lib
/usr/share/sdcc/lib/large/libsdcc.lib
/usr/share/sdcc/lib/medium/libsdcc.lib
/usr/share/sdcc/lib/small/libsdcc.lib
/usr/share/sdcc/lib/small-stack-auto/libsdcc.lib

$
"""

  die Tutorials nennen "inc2h.pl", ich finde 
"/usr/share/sdcc/scripts/cinc2h.pl" als neuerer Ersatz dafuer.

  PROBLEM:
  trotz lesen des kommentars in "cinc2h.pl" und pervasiver einsatz der 
$SuchmaschineDesTages schaffe ich es nicht einsatzbeispiele fuer dieses 
Script zu finden.

  FRAGEN:
  - was ist genau gemeint mit "...to add a NEW targetdevice to 
SDCC/PIC.."?
    (ich schreibe ja nicht unterstuetzung fuer ein NEUES Target, ich 
moechte ja nur sdcc fuer ein bereits unterstuetztes Target 
aktivieren...)
  - wie ermittle ich "path/to/gputils_source"?
    (ist Quellcode der gputils selbst gemeint oder 
"/usr/share/gputils/header/" weil
"""
$ find /usr/share/gputils | grep p16f[58][4x]
/usr/share/gputils/header/p16f5x.inc
/usr/share/gputils/header/p16f84.inc
/usr/share/gputils/header/p16f84a.inc

""" ?)
  - was ist ein sinnvoller Wert fuer "path/to/output"?
    (da hab ich gar keine Phantasie...)


  es waer nett einen Konkreten/Konstruktiven Hinweis zu bekommen, es 
darf auch eine Webadresse eines aktuellen Tutorials mit Beispiele sein 
(v.a. mit "cinc2h.pl" anstelle "inc2h.pl")  - ich lese fliessen D/E/F/I, 
mit Sp/Pt wuerde ich auch noch ueberleben.

besten Dank im voraus
Stephan

von Carsten M. (ccp1con)


Lesenswert?

Ich habe leider nur eine Gegenfrage: was ist anders/besser mit SDCC 
gegenüber den Microchip Compilern?

von Frank K. (fchk)


Lesenswert?

Carsten M. schrieb:
> Ich habe leider nur eine Gegenfrage: was ist anders/besser mit SDCC
> gegenüber den Microchip Compilern?

Es ist Open Source und unterliegt einer freien Lizenz.

fchk

von Heiko Gast (Gast)


Lesenswert?

Frank K. schrieb:
>
> Es ist Open Source und unterliegt einer freien Lizenz.

Und wie so viele Open Source Tools ist es, wenn überhaupt, nur nach 
exessiven Konfigurationsorgien zu benutzen. MPLab und XC8 installieren 
und gut ist.

von Michael S. (rbs_phoenix)


Lesenswert?

Willst du an dem Compiler irgendwas ändern? Sonst ist es doch egal, ob 
Open Source oder nicht. Das war bei mir noch nie ein Kriterium.

Und eine Free Version gibt es beim XC auch, den man meines Wissens sogar 
kommerziell nutzen darf.

Also ich hatte SDCC mal getestet, doch nach der Ausgabe, dass kein 
double unterstützt wird, war er in meinem Kopf unter "nicht wirklich 
brauchbar" gespeichert. Abgesehen davon, will ich auch eine IDE haben, 
die da nicht dabei ist, aber das ist Ansichtssache. Daher kann ich zu 
deinem Problem nichts sagen. Bei MPLAB X oder auch MikroC z.B. hatte ich 
solche Probleme, dass irgendetwas nicht gefunden wurde, noch nie.

BTW: Wieso willst du für einen 16F84 ein Programm schreiben? :
http://www.mikrocontroller.net/articles/PIC#Alte_und_neue_PICs

von Stephan (Gast)


Lesenswert?

Carsten M. schrieb:
> Ich habe leider nur eine Gegenfrage: was ist anders/besser mit SDCC
> gegenüber den Microchip Compilern?

  bei mir besteht keine Pflicht fuer SDCC.

  Ich "versuch mich an jedem" Compiler der:
  - unter freier Lizenz verfuegbar ist (Frei wie Freiheit, nicht 
Freibier)
  - unter Linux oder *BSD laeuft
  - ueber das jeweilige standard Paketmanagement zu haben ist (keine 
wilde Binaries) also z.B. "apt-get install sdcc"

Michael Skropski schrieb:
> BTW: Wieso willst du für einen 16F84 ein Programm schreiben? :
> http://www.mikrocontroller.net/articles/PIC#Alte_und_neue_PICs

  - weil ich eine Schachtel voll davon zur Verfuegung habe, unbenutzte 
neuwertige Teile.
  - weil ich etwas, dass den verwendet nachbauen will
  - weil ich etwas, dass den verwendet erweitern will


Ergaenzend:
  wenn ich einen Compiler suche, suche ich einen Compiler - nicht eine 
IDE; eine IDE habe ich schon (make, emacs, ...)
  eine IDE suche ich vorallem beruflich selten, weil sich IDEs generell 
sehr schlecht in NightlyBuilds/ContinuousIntegration einsetzen lassen.

von Michael S. (rbs_phoenix)


Lesenswert?

Stephan schrieb:
> Michael Skropski schrieb:
>> BTW: Wieso willst du für einen 16F84 ein Programm schreiben? :
>> http://www.mikrocontroller.net/articles/PIC#Alte_und_neue_PICs
>
>   - weil ich eine Schachtel voll davon zur Verfuegung habe, unbenutzte
> neuwertige Teile.
>   - weil ich etwas, dass den verwendet nachbauen will
>   - weil ich etwas, dass den verwendet erweitern will

Ansich sind die PICs, die das gleiche Gehäuse haben, auch von der 
Belegung her gleich. Du kannst also den PIC16F84A z.B. durch einen 
16F627A oder neuer -> 16F1826. Aber musst du wissen, ob der Umstieg auf 
dauer Sinn macht (Wenn dein Vorrat von 16F84 leer ist. Ich hab meinen in 
den Mülleimer geleert)


Stephan schrieb:
> wenn ich einen Compiler suche, suche ich einen Compiler - nicht eine
> IDE; eine IDE habe ich schon (make, emacs, ...)
>   eine IDE suche ich vorallem beruflich selten, weil sich IDEs generell
> sehr schlecht in NightlyBuilds/ContinuousIntegration einsetzen lassen.

Den XC8 kann man meines Wissens auch ohne MPLAB X nutzen. Die IDE gibt 
es aber auch für Linux, daher würde ich MPLAB X statt den bisherigen 
nutzen, da er eben für die PICs und Microchips Compiler gemacht wurde. 
Aber wie gesagt. Solltest du DIE Ultra IDE haben, kannst du auch den 
XC8 Compiler von Microchip laden. Ich weiß bloß nicht, wie gut der 
einzelne Compiler dokumentiert ist.

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.