Compiler meckert wegen #define

Gast #3438952
Lesenswert?

Hallo,

ich versuche dieses Projekt auf meinem Launchpad umzusetzen:
http://embedded-funk.blogspot.de/2013_11_01_archive.html

Im .h-File steht die Zeile:
1
#define RAM_CODE_LEN   (RAM_CODE_END_ADDR - RAM_CODE_START_ADDR + 1)
Sie errechnet die Länge eines RAM-Speicherabschnitts.

Eingesetzt wird der Wert dann im .cmd-File. Zweck der Übung ist es im 
RAM-Speicher einen Block für Code freizuhalten:
1
MEMORY
2
{
3
...
4
RAM_CODE   : origin = RAM_CODE_START_ADDR, length = RAM_CODE_LEN
5
...
6
}

Mein CodeKomposter (CCSv4CoreEdit) sagt mir bei kompilieren:
*** expecting "")"" instead of "-" ***
Er will also nix rechnen sondern lieber dass ich einen Wert eingebe und 
danach die Klammer zu mache ...

Darauf kann ich mir irgendwie keinen Reim machen.
1
//Theorethisch müsste doch
2
#define var1 (0x0001)
3
//gleichwertig sein mit
4
#define var1 (0x0002-0x0001)
5

6
//bzw ... wie in meinem Beispiel ...
7
#define a (0x0002)
8
#define b (0x0001)
9
#define var1 (a-b)

Kompiliert wird der Code aber nur mit dieser Variante:
1
#define RAM_CODE_LEN   (0x0080)


Was mach ich falsch?

Gruß
Hans
Gast #3439338
Lesenswert?

Hallo Jim,
danke erstmal fürs Lesen und Antworten :)

> Du mischst Linker- und Präprozessorsymbole wild durcheinander. Das wird
> so nicht funktionieren.
Kannst Du mir erklären was genau ich falsch mache?

> Was ist eigentlich das Ziel der Übung? Funktionen statt Flash in den Ram
> zu setzen geht einfacher.
Ja, das ist das Ziel.
Kannst Du mir einen Hinweis geben wie ich es einfacher lösen kann?

Gruß
Hans

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren