Forum: Mikrocontroller und Digitale Elektronik SDCC und MPLAB


von Anubis (Gast)


Lesenswert?

Hallo,

kann mir jemand sagen, wie ich den SDCC-Compiler in Microchip MPLAB 
verwenden kann? Welche Optionen muss man beim kompilieren angegeben?

von Latissimo (Gast)


Lesenswert?

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....

von Anubis (Gast)


Lesenswert?

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.

von Latissimo (Gast)


Lesenswert?

#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?

von Latissimo (Gast)


Lesenswert?

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

von Anubis (Gast)


Lesenswert?

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?

von Anubis (Gast)


Lesenswert?

Hallo,

habe ich ganz vergessen: PIC16F877

von Michael König (Gast)


Lesenswert?

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

von Andy (Gast)


Lesenswert?

schau dir doch mal den mikroC for PIC an: 
http://www.mikroe.com/en/compilers/mikroc/pic/

von Latissimo (Gast)


Lesenswert?

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

von Latissimo (Gast)


Lesenswert?

die überschrift der Tabelle heißt: register file map

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.