Vieliel RAM hat denn der 8535? AFAIK het er 1kByte, und das ist zu wenig für ein Array von 1k, weil noch andere Sachen im RAM stehem müssen (Stack, globale Variablen, etc).

Übrigens: GCC ist zwar freie Software, aber deshalb nicht automatisch kostenlos. Und auch von freier Software kann man verlangen oder erwarten, daß sie fehlerfrei ist bzw. Fehler abfängt oder anmeckert.

Allerdings kann ein Compiler solche Sachen nicht melden, das kann bestenfalls ein Linker oder Locator. Ein C-Compiler weiß ja nicht, für welchen Controller übersetzt wird (z.B., wenn man Module in eine Lib tut, und zum Linken wieder entnehmen will).

Daß der Linker nicht meckert ist zumindest ein Schnatzer. Es bietet sich dann an, mit avr-size die Großen zu kontrollieren. Ggf kann man das auch automatisieren im Makefile, die Größen berechnen lassen und nen Fehler werfen, wenn .data+.bss+.noinit zu groß sind.