Gast
#478886
Hallo zusammen, habe ein paar AT90CAN32 verbaut. Leider unterstuetzt mein avr-gcc (4.1.0 bei debian) nicht exakt diesen uC, sondern den fast identischen AT90CAN128. AT90CAN32 und AT90CAN128 unterscheiden sich ausschliesslich in der Speichergroesse von Flash, RAM, und EEPROM. Code erzeugt fuer den AT90CAN128 laeuft also grundsaetzlich auf dem AT90CAN32. Nur bei C gibt es ein kleines Problem mit dem Stackpointer: avr-gcc setzt den Stackpointer ans Ende des RAMs. Wenn ich fuer den AT90CAN128 compiliere/linke, liegt das ausserhalb des gueltigen Bereiches fuer den AT90CAN32 und das Programm verreckt klaeglich bei einem RET. Ich frage mich nun, wie ich den Compiler/Linker dazu bringen kann, einfach weniger RAM anzunehmen und den Stackpointer entsprechend zu setzen. Wie kann ich sagen: Der RAM ist nur 2 KiByte (anstatt 8 KiBytes wie beim AT90CAN128 angenommen.) Ich moechte weiterhin ein nettes Makefile benutzen. Vielen Dank schon mal fuer die Hilfe! Thorsten