undefined reference to __HEAP_END/ __HEAP

Gast #5804966
Lesenswert?

Hallo,
ich möchte einen speicher für einen Array reservieren.
1
long long *encrypted = malloc(sizeof(long long)*message_size);

diesen möchte ich dann als return wert von der Funktion zurück geben.

wenn ich das bauen möchte, bekomme ich in ../tricore/lob\libos.a in 
function sbrk die Fehler
undefined rerence to __HEAP_END
undefined rerence to __HEAP

Wo kann ich den HEAP einstellen?
habe versucht direkt über dem Aufruf zwei defines zu machen, was aber 
nichts gebracht hat.

Alternativ könnte ich den Array als übergabeparmaeter mit zur Funktion 
geben und dann beschreiben.

Wobei ich erstere Lösung lieber machen würde, damit ich das auch mal 
gemacht habe
Persönliche Seite #5804973
Lesenswert?

Mark schrieb:
> Wo kann ich den HEAP einstellen?

Wahrscheinlich im Linker-Script. Welcher Compiler, C-Library und 
Controller wird genutzt? Sicher, dass dynamische Speicherverwaltung 
sinnvoll ist - wird der Speicher auch mal anderweitig gebraucht, oder 
kannst du ihn auch als globale Variable definieren weil der Speicher 
sonst ungenutzt wäre?

Mark schrieb:
> habe versucht direkt über dem Aufruf zwei defines zu machen, was aber
> nichts gebracht hat.

Klar, die sieht nur der Compiler, aber malloc() bzw. das vermutlich 
vorhandene _sbrk() ist ja schon kompiliert.

Mark schrieb:
> Alternativ könnte ich den Array als übergabeparmaeter mit zur Funktion
> geben und dann beschreiben.

Welche Funktion denn? Klingt nicht prinzipiell verkehrt...

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