Forum: Mikrocontroller und Digitale Elektronik Frage(n) zu Codevision


von Steffen Hausinger (Gast)


Lesenswert?

Hallo

Ich habe eine Frage zum Codevision Compiler: Ich benutze die
Evaluation-Version, die auf 2kByte Programmcode beschränkt ist.
Abgesehen davon, dass ich mir eine Vollversion ohnehin nicht leisten
kann, reicht die Version ja für die kleineren Bausteine.

Aber seltsamerweise meckert der Compiler bei mir schon bei 550Words
also 1100Bytes rum, dass der Code zu groß für die Evaluation-Version
ist! Irgendwie muss das aber auch am Code liegen, weil wenn ich den
Compiler mit Assembler-Befehlen vollstopfe, erscheint diese Meldung
nicht (bis zur 2kByte-Grenze)!! Kennt jemand dieses Problem?!

Die zweite Frage, die ich mir (und jetzt natürlich Euch ;-) ) stelle,
ist, wie ich im Assemblercode auf Bit-Variablen zugreifen kann. Also
Bit-Variablen, die in C-Code deklariert wurden. Gibt es da eine
eindeutige Zuordnung?

Vielen Dank schonmal ;-)
Grüsse,
Steffen

von Steffen Hausinger (Gast)


Lesenswert?

Puh, kennt keiner das Problem oder nutzt ihr alle die Vollversionen?
Eigentlich ist die Codebegrenzung auf 2kByte doch wie geschaffen für
die kleinen AVRs.

Hat jemand eine Idee, warum er jetzt meckern könnte? Ich bin mit meinem
Latein am Ende und beschäftige mich insgesamt schon einige Stunden mit
dem Problem...

Ich würde mich wirklich sehr freuen, wenn ihr mir Tipps geben
könntet!!

Grüsse,
Steffen

von Ralf (Gast)


Lesenswert?

Kenne mich mit AVRs usw. eigentlich nicht aus, aber könnte es sein, dass
irgendwas hinter der 2k-Grenze von deinem Compiler eingesetzt wird?
Vielleicht eine Tabelle im Code-Speicher oder sowas in der Art. Ich
könnte mir vorstellen, dass dann gemault wird, sobald irgendwas hinter
den 2k im Code-Bereich steht.

Nur so ne Idee...

Gruß Ralf

von Koopi (Gast)


Lesenswert?

Zu1. kann ich nicht sagen, habe eine Vollversion.

zu2. gibt es leider eine schlechte Nachricht. Es gibt keine direkte
Zuordnung.

Ich habe in einer Software das selbe Problem gehabt. Dort mußte ich die
"C-Bits" in den Registern definieren und anschließend dem selben
Register in Asm. die "asm.-Bits" zuweisen.
Wenn es verweidbar ist lass es, da der Compiler die "C-Bits" selber
zuordnet. Beim Umstieg vom Mega8 auf den Mega168 gibt es schon eine
Verschiebung.

Bernhard

von T.Stütz (Gast)


Lesenswert?

Kann es sein das du C-Funktionen verwendest wie
z.B: strlen(),memcpy(),printf() etc. ?

Diese müßen natürlich auch in den Code mit rein.

Aufklärung vielleicht durch ein Assembler-Listing.

Gruss

von Steffen Hausinger (Gast)


Lesenswert?

Hallo

Ich benutze keine C-Funktionen, aber Library-Funktionen (Delay.h). Ich
hab die geradeeben mal auskommentiert, trotzdem kommt die
Fehlermeldung. Damit erübrigt sich vermutlich auch Dein Vorschlag, Ralf
:-(

Er sagt mir doch beim Linken(?), wie groß das File geworden ist. Und da
schreibt er bei mir 550Words - das sind nach Adam Riese noch 450Words
bis zur Codegrenze... seltsam, oder?

Das mit den Bit-Feldern ist auch schade, aber dann schon fast egal,
weil ich mit dem Compiler dann nicht weitermachen kann. Ich versuche
mich jetzt mit WinAVR!

Vielen Dank für Eure Hilfe!
Steffen

von Michael (Gast)


Lesenswert?

Ich habe hier eine Version 1.23.5, die diese Grenze wohl nicht kennt.
Weiß jemand, ob diese Grenze nur bei neueren Ausgaben vorhanden ist ?

von Steffen Hausinger (Gast)


Lesenswert?

1.24.0 ist es jedenfalls (schon). Gibts die Version denn noch irgendwo
zum Download?

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.