Hallo zusammen
Ich habe ein Problem mit einem Programm auf einem LPC2214.
Es geht um folgenden C Code (nur zum testen, wie viel Speicher ich
reservieren kann)
1 | unsigned int counter = 0;
|
2 |
|
3 | while (1)
|
4 | {
|
5 | counter++;
|
6 | pointer = malloc(32);
|
7 | if (pointer == 0)
|
8 | {
|
9 | pointer++; // Hier liegt nen breakpoint...
|
10 | }
|
11 | }
|
So. Wenn ich jetzt in meinem Linker File
1 | __end__ = .;
|
2 | _end = .;
|
3 | PROVIDE(end = .);
|
vor den Definitionen für die Stacks schreibe (wie in der angehängten
Datei) kann ich 37 mal die 32 Byte reservieren.
Wenn ich den teil mit dem PROVIDE(end=.) ans Ende der Datei schreibe
(wie es doch eigentlich richtig ist, oder?) bekomme ich von malloc IMMER
0x00000000 zurück.
Einige Infos noch zur Umgebung:
Ich benutze Yagarto mit eclipse.
Version.txt von Yagarto:
1 | This build of yagarto use the following versions:
|
2 |
|
3 | binutils: 2.18
|
4 | gcc: 4.3.2
|
5 | newlib: 1.16.0
|
6 | gdb: 6.8.50-20080308-cvs
|
7 |
|
8 | (28.09.2008, mifi)
|