Forum: Mikrocontroller und Digitale Elektronik Program Space zu klein


von Chris M. (sinsor)


Lesenswert?

Hallo,

Ich arbeite zurzeit mit dem PIC16F876A und nun habe ich das Problem das 
der Speicher voll ist. Jetzt würde ich gerne wissen was man da am Besten 
gegen machen kann, also gibt es evtl. irgendwelche Möglichkeiten den 
Code zu komprimieren, durch anderen Compiler oder so??(Nutze zurzeit den 
HI-Tech C Compiler) Oder hilft da nur einen größeren PIC zu nehmen. Wenn 
ja gibt es da evtl. welche die ich nehmen könnte bei denen ich nix im 
Programm ändern müsste ?

Vielen Dank im Voraus!

von Karl H. (kbuchegg)


Lesenswert?

* Optimizer vom Compiler einschalten
* Programmcode durchsehen, was davon ungeschickt und unnötig
  kompliziert programmiert wurde
* Variablen durchsehen, ob ein paar davon nicht mit dem nächst
  kleineren Datentyp auskommen.
* Algorithmen durchsehen, ob es da nicht einfachere Varianten gibt


Wunder kann natürlich keiner bewirken. Aber ein bischen was geht 
meistens noch immer. Vor allem bei Programmen von Neulingen, die manche 
Dinge noch ungeschickt machen.

von Chris M. (sinsor)


Lesenswert?

Wo kann ich diesen Optimizer abschalten ?

von Karl H. (kbuchegg)


Lesenswert?

Einchalten, nicht abschalten.

UNd wie das geht, steht im Handbuch oder in der Hilfe deines Compilers. 
Zur Not kann man aich einfach mal alle Menüs abgrasen, ob es irgendwo 
einen Menüpunkt "Optionen" oder "Einstellungen" oder 
"Projekteinstellungen" oder so ähnlich gibt und dann dort wieder die 
Dialoge abklopfen, bis man die Einstellung gefunden hat.

Ich kenne deine ENtwicklungsumgebung nicht. Aber so schwer ist das dann 
normalerweise auch wieder nicht zu finden. Vor allen Dingen findet man 
dann nämlich meistens auch noch viele andere interessante Dinge :-)

von Chris M. (sinsor)


Lesenswert?

oh hups verlesen xD

ähm ich benutze MPLAB, ich werds ma durchschauen

von Martin S. (drunkenmunky)


Lesenswert?

Ich denk mal du benutzt die kostenlose Variante des Compilers? Da ist 
gerade diese Optimierung deaktiviert!

von Chris M. (sinsor)


Lesenswert?

Ne ich hab die Pro Version, aber wo kann ich das denn einstellen ?

von Anja (Gast)


Lesenswert?

Chris Meier schrieb:
> Wenn
> ja gibt es da evtl. welche die ich nehmen könnte bei denen ich nix im
> Programm ändern müsste ?

Nein der PIC16F876A ist schon der größte innerhalb der Serie.
Der nächst größere mit demselben Pinning (also minimalen 
Hardware-Änderungen) wäre der PIC18F2520. Damit verdoppelt sich die 
Anzahl der möglichen Instruktionen. Ein paar Änderungen in der Software 
sind allerdings schon nötig.

Beim PIC16F876A hängt auch viel davon ab wie man das Programm in den 4 
Pages des Programmspeichers ablegt. (Minimierung der Bankumschaltungen). 
Eventuell läßt sich ja durch eine geschickte Modularisierung etwas 
erreichen.

Gruß Anja

von Grübler (Gast)


Lesenswert?

Verzicht auf den Datentyp float.

von Martin S. (drunkenmunky)


Lesenswert?

Du hast so viel Geld für ne Pro Version ausgegeben und weißt nicht mal 
wie man dann die Optimierung einschaltet? Naja, ob das ne legale Version 
ist?
So schwer ist des jetzt auch nicht zu finden. Schau mal unter Project, 
Build Options, Project. Dann unter dem Reiter Compiler.

Man muss ja nicht gleich ein PIC18 nehmen, ein PIC16F1938 hat auch 28kB 
Flash und ist deutlich billiger.

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.