Kera
13.03.2006, 15:01
Hallo, ich bräuchte wiedermal eure Hilfe!
Ich arbeite mit dem ATmega8535, dieser besitzt 8k Programmspeicher!
Wenn ich nun bei meinem Programm 3 Zeilen dazu schreibe, geht das Programm auf der µc-Platine nicht mehr, obwohl mir das Compiler Fenster das hier ausspuckt:
> "C:\WinAVR\utils\bin\make.exe" all
-------- begin --------
avr-gcc (GCC) 3.3.2
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Size before:
regler.elf :
section size addr
.text 6564 0
.data 0 8388704
.bss 174 8388704
.noinit 0 8388878
.eeprom 0 8454144
.stab 8064 0
.stabstr 3218 0
Total 18020
C:\WinAVR\utils\bin\make.exe: *** Warning: File `protokoll.c' has modification time in the future (2006-03-13 14:53:02 > 2006-03-13 14:53:00)
Compiling: protokoll.c
avr-gcc -c -mmcu=atmega8535 -I. -g -O0 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=protokoll.lst -std=gnu99 -Wp,-M,-MP,-MT,protokoll.o,-MF,.dep/protokoll.o.d protokoll.c -o protokoll.o
Linking: regler.elf
avr-gcc -mmcu=atmega8535 -I. -g -O0 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=regler.o -std=gnu99 -Wp,-M,-MP,-MT,regler.o,-MF,.dep/regler.elf.d regler.o uart.o timer8.o adc.o regler_funct.o protokoll.o pwm.o --output regler.elf -Wl,-Map=regler.map,--cref -lm
Creating load file for Flash: regler.hex
avr-objcopy -O ihex -R .eeprom regler.elf regler.hex
Creating load file for EEPROM: regler.eep
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O ihex regler.elf regler.eep
Creating Extended Listing: regler.lss
avr-objdump -h -S regler.elf > regler.lss
Creating Symbol Table: regler.sym
avr-nm -n regler.elf > regler.sym
Converting to AVR Extended COFF: regler.cof
avr-objcopy --debugging --change-section-address .data-0x800000 --change-section-address .bss-0x800000 --change-section-address .noinit-0x800000 --change-section-address .eeprom-0x810000 -O coff-ext-avr regler.elf regler.cof
Discarding local symbol outside any compilation unit: _exp_100
Discarding local symbol outside any compilation unit: _exp_200
Discarding local symbol outside any compilation unit: table_exp
Discarding local symbol outside any compilation unit: _exp_300
Discarding local symbol outside any compilation unit: _exp_200_1
Discarding local symbol outside any compilation unit: _log_10
Discarding local symbol outside any compilation unit: _log_20
Discarding local symbol outside any compilation unit: table_log
Discarding local symbol outside any compilation unit: .do_copy_data_start
Discarding local symbol outside any compilation unit: .do_copy_data_loop
Discarding local symbol outside any compilation unit: .do_clear_bss_start
Discarding local symbol outside any compilation unit: .do_clear_bss_loop
Size after:
regler.elf :
section size addr
.text 6636 0
.data 0 8388704
.bss 174 8388704
.noinit 0 8388878
.eeprom 0 8454144
.stab 8112 0
.stabstr 3245 0
Total 18167
Errors: none
-------- end --------
> Process Exit Code: 0
Wie man hier sieht, ist .text erst auf 6636, normaler weise müsste ich doch bis 8000 gehen können, oder??
Komischer weise geht es immer dann nicht, wenn .text über 6600 springt! Warum??
.text steht doch für die Programmzeilen(COde) oder??
MFG
Ich arbeite mit dem ATmega8535, dieser besitzt 8k Programmspeicher!
Wenn ich nun bei meinem Programm 3 Zeilen dazu schreibe, geht das Programm auf der µc-Platine nicht mehr, obwohl mir das Compiler Fenster das hier ausspuckt:
> "C:\WinAVR\utils\bin\make.exe" all
-------- begin --------
avr-gcc (GCC) 3.3.2
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Size before:
regler.elf :
section size addr
.text 6564 0
.data 0 8388704
.bss 174 8388704
.noinit 0 8388878
.eeprom 0 8454144
.stab 8064 0
.stabstr 3218 0
Total 18020
C:\WinAVR\utils\bin\make.exe: *** Warning: File `protokoll.c' has modification time in the future (2006-03-13 14:53:02 > 2006-03-13 14:53:00)
Compiling: protokoll.c
avr-gcc -c -mmcu=atmega8535 -I. -g -O0 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=protokoll.lst -std=gnu99 -Wp,-M,-MP,-MT,protokoll.o,-MF,.dep/protokoll.o.d protokoll.c -o protokoll.o
Linking: regler.elf
avr-gcc -mmcu=atmega8535 -I. -g -O0 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=regler.o -std=gnu99 -Wp,-M,-MP,-MT,regler.o,-MF,.dep/regler.elf.d regler.o uart.o timer8.o adc.o regler_funct.o protokoll.o pwm.o --output regler.elf -Wl,-Map=regler.map,--cref -lm
Creating load file for Flash: regler.hex
avr-objcopy -O ihex -R .eeprom regler.elf regler.hex
Creating load file for EEPROM: regler.eep
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O ihex regler.elf regler.eep
Creating Extended Listing: regler.lss
avr-objdump -h -S regler.elf > regler.lss
Creating Symbol Table: regler.sym
avr-nm -n regler.elf > regler.sym
Converting to AVR Extended COFF: regler.cof
avr-objcopy --debugging --change-section-address .data-0x800000 --change-section-address .bss-0x800000 --change-section-address .noinit-0x800000 --change-section-address .eeprom-0x810000 -O coff-ext-avr regler.elf regler.cof
Discarding local symbol outside any compilation unit: _exp_100
Discarding local symbol outside any compilation unit: _exp_200
Discarding local symbol outside any compilation unit: table_exp
Discarding local symbol outside any compilation unit: _exp_300
Discarding local symbol outside any compilation unit: _exp_200_1
Discarding local symbol outside any compilation unit: _log_10
Discarding local symbol outside any compilation unit: _log_20
Discarding local symbol outside any compilation unit: table_log
Discarding local symbol outside any compilation unit: .do_copy_data_start
Discarding local symbol outside any compilation unit: .do_copy_data_loop
Discarding local symbol outside any compilation unit: .do_clear_bss_start
Discarding local symbol outside any compilation unit: .do_clear_bss_loop
Size after:
regler.elf :
section size addr
.text 6636 0
.data 0 8388704
.bss 174 8388704
.noinit 0 8388878
.eeprom 0 8454144
.stab 8112 0
.stabstr 3245 0
Total 18167
Errors: none
-------- end --------
> Process Exit Code: 0
Wie man hier sieht, ist .text erst auf 6636, normaler weise müsste ich doch bis 8000 gehen können, oder??
Komischer weise geht es immer dann nicht, wenn .text über 6600 springt! Warum??
.text steht doch für die Programmzeilen(COde) oder??
MFG