Forum: Mikrocontroller und Digitale Elektronik Nut OS Konfigurationsprobleme


von Willi Wagner (Gast)


Lesenswert?

Hallo

nachdem der erste Fehler nun beseitigt wurde, offenbart sich der 
nächste:

meine für die Hardware spezifischen Einstellungen, die ich vor dem Build 
im Nut-Configorator getroffen habe, werden beim builden der 
sampleanwendung "httpd" nicht berücksichtigt.

Getroffen habe ich folgende Einstellungen (configfile):
1
PLATFORM = "ETH2ISA"
2
AVR_GCC = ""
3
MCU_ATMEGA128 = ""
4
RTL_BASE_ADDR = "0xFF00"
5
RTL_SIGNAL_IRQ = "INT5"
6
NUTMEM_SIZE = "4096"
7
NUTMEM_START = "0x100"
8
NUTMEM_RESERVED = "64"
9
NUTXMEM_SIZE = "32512"
10
NUTXMEM_START = "0x8000"
11
NUT_CPU_FREQ = "16000000"
12
CONFOS_VIRGIN_HOSTNAME = "ETHERNET2ISA"
Diese ziehen sich bis in die Headerfiles im nutbuild/include/cfg Ordner 
durch. Jedoch werden diese beim Build mit dem generierten Makefile 
schlichtweg ignoriert.

Der Webserver liefert so z.B. "~55000 Bytes free" über die 
Debugschnittstelle zurück, obwohl gerademal knapp 36KB Gesamtspeicher 
vorliegen. Weiterhin meldet sich die Büchse nicht wie definiert mit 
"ETHERNET2ISA" beim DHCP, als vielmehr mit "Ethernut".

Was mache ich falsch?

Grüße und Vielen Dank,
willi

von Willi Wagner (Gast)


Lesenswert?

Weiter nachforschend habe ich nun folgendes probiert:
1
    printf("\e\n\nNut/OS %s HTTP Daemon...", NutVersionString());
2
  printf("\nSRAM Size     : %6d Bytes [starting at 0x%04X]", NUTMEM_SIZE, NUTMEM_START);
3
  printf("\nXRAM Size     : %6d Bytes [starting at 0x%04X]", NUTXMEM_SIZE, NUTXMEM_START);
4
  printf("\nSRAM Reserved : %6d Bytes", -NUTMEM_RESERVED);
5
  printf("\n==============================");
6
  mem = NUTMEM_SIZE+NUTXMEM_SIZE-NUTMEM_RESERVED;
7
  printf("\nTotal Bytes   : %u Bytes", mem);
8
  printf("\nHeap free     : %u Bytes\n", (long) (NutHeapAvailable()));
9
10
  printf("\nBefore malloc(8192) : %6u Bytes", NutHeapAvailable());
11
  ptr = malloc(8192);
12
  printf("\nAfter malloc(8192)  : %6u Bytes", NutHeapAvailable());
13
  free(ptr);
14
  printf("\nAfter free(8192)    : %6u Bytes\n\n", NutHeapAvailable());
15
16
  NutHeapDump(stdout);
17
  printf("\n\n");

liefert folgenden Output zurück:
1
Nut/OS 4.8.9.0 HTTP Daemon...
2
SRAM Size     :   4096 Bytes [starting at 0x0100]
3
XRAM Size     :  32512 Bytes [starting at 0x8000]
4
SRAM Reserved :    -64 Bytes
5
==============================
6
Total Bytes   : 36544 Bytes
7
Heap free     : 60620 Bytes
8
9
Before malloc(8192) :  60620 Bytes
10
After malloc(8192)  :  52426 Bytes
11
After free(8192)    :  60620 Bytes
12
13
0x1130(-4914)

Anscheinend sind die Definitionen richtig gesetzt, nur die 
Speicherverwaltung wird nicht danach initialisiert?
Woran kann das liegen?
Glücklicherweise wird der RAM auf den Adressen 0x1100-0x7FFF nochmal 
gespiegelt...

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.