Hallo, kann mir jemand sagen, wie ich den SDCC-Compiler in Microchip MPLAB verwenden kann? Welche Optionen muss man beim kompilieren angegeben?
http://sdcc.sourceforge.net/doc/sdccman.pdf siehe kapitel 4.5.5 command line options hoffe das hilft! noch was: ich habe den C-Compiler von www.cc5x.de die free version ist auf 1k fertiger Code beschränkt habe also 17k C-Code geschafft. Hier bei ist eine gute Beschreibung(schritt für schritt) wie man in MPLAB ein Projekt erstellt, das den C-Compiler verwendet. Dann brauchst du nur noch auf Build klicken....
Hallo, ja, CC5x verwende ich auch. Aber ich bin jetzt auf ein Problem gestoßen. Ich möchte 594 Byte speichern, für ein Hintergrundbild auf einem Grafik-LCD. Erst einmal läßt sich die nicht in einen einzigen Array unterbringen. CC5x beherrscht scheinbar nur 8Bit Pointer/ Adressen (in der Freeversion?). Bei der Aufteilung der 594 Byte auf drei Arrays erhalte ich die Fehlermeldung, dass nicht genügend Platz für die Array ist. Noch nicht einmal das erste mit 255 Byte lassen sich so einbinden. Der SDCC hat damit keine Probleme. Nur bekomme ich kein brauchbares Format für MPLAB zu stande.
#pragma rambank 0 variablen auf bank o #pragma rambank 1 usw... hoffe du hast an den Bankwechsel bei so einem PIC gedacht. welchen benutzt du? Einen 16FXXX?
Aufstellung von PIC C- Compilern allgemein: http://www.informel.de/pic/ccompiler.htm Hier was zum SDCC-Compiler: http://www.matwei.de/doku.php?id=de:sdcc:installation
Hallo, also die Sache mit dem Bankwechsel ist mir immer noch nicht so ganz klar. Ich hatte vorher mit anderen Controllern zu tun und dann ist diese Speicherorganisation etwas gewöhnungsbedürftig. Wie genau funktioniert das bei meinem Problem?
Dann könntest du dir eventuell auch mal den PICC-Lite von HI-TECH anschauen, wobei der leider auch Beschränkungen hat: http://microchip.htsoft.com/products/compilers/PICClite.php
Der Speicher von deinem PIC ist auf verschiedene Speicherbänke verteilt. Du musst dir vorstellen, dass es verschiedene Orte sind. Wenn du jetzt Variablen anlegst, musst du dem Compiler sagen, an welchem Ort du die Variable anlegen willst. im Datenblatt müsstest du eine Auflistung: Special Function Registers finden. Dort siehst du die vier(oder wie viele auch immer bei deinem pic) Speicherbänke als Spalten. in den zeilen sind die einzelnen Register mit entsprechender hexadezimalen Adresse angegeben. Du kannst also im Datasheet suchen nach:" General Purpose Register " das steht an den Stellen der einzelnen Bänke, wo Platz für eigens erstellte Variablen geboten wird. hoffe das ist eine hilfe
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.