> Warum? Was hättest Du sonst erwartet? Daß er den Inhalt der Variablen im
> Kopf behält statt sie im Speicher abzulegen?
Naja, normalerweise benutze ich Pointer auf Structs.
Da ist es schon sinnig mit einem [1] die Adresse auch zu erzeugen.
> Das wäre möglich, wenn das Struct an geeignete Adressen gelegt wird,
> wozu Du den Linker allerdings erst anweisen müßtest. Das Padding
> dazwischen könntest Du dann manuell so machen, daß eine Page frei
> bleibt. Parallel dazu könntest Du dann eine weitere Datenstruktur in
> genau diese Page linken, die Du dann für einen anderen Task nutzen
> kannst.
Die kleinste Einheit mit der die betreffende MMU das koennte,
waeren 512 byte. Wenn das ein kritisches Steuerungssystem
werden sollte, wuerde ich das wohl sogar machen um einen
Ueberlauf des (User-)Stacks zu detektieren. Fuer Interrupts
hat der Controller ohnehin noch einen eigenen Stack.
An dem "vergifteten" Bereich haette die "andere" Task aber
wenig Freude. Dem wuerde die MMU ihr auch dazwischenfahren.
An dem Controller haengt u.a. noch ein HY57V281620 SDRAM.
Nach Datenblatt sollte der 134,217,728 bit (16 MByte) haben.
Nach meinen Tests ist der aber doppelt so gross und bringt
32 MByte an seine Beine. Ich habe mal den Memtest des
Boardherstellers entsprechend aufgebohrt und der laueft
fehlerfrei durch.
Wie kommt denn sowas...
P.S.: map4k mappt 4k (16 bit-)Worte und nicht etwa Bytes.