so tag leute, weiß nun (vermute), dass das Programm einfach zur zu groß ist, oder ? (bezieht sich alles auf unten dann meine frage was bedeuten die Linker-optionen ... hab mal hier : http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Link-Options.html#Link-Options bissl gelesen find aber realtiv wenig z.B. die ganzen "--*" optionen nicht. hab das makefile nicht komponiert - benutze es nur gerade aus dem Proj. an welchem ich herumbastele, und bevor ich die optionen lösche oder so wüsst ich gern was sie bedeuten . " UNTEN " Hi, i use borland make on windows. after compiling the linker starts and prints " region text is full (a.out section .text)" I dont know if this is the cause for the errors later ( see below ) with "undefined reference to" here some more print details : ==================================================================== link to ..\image\ATMegaEmpty C:\Progrg\WinAVR\bin\avr-gcc.exe ..\image\MN_Main.o ..\image\PR_2561.o ..\image\AH_Actn.o ..\image\TI_Timer.o ..\image\UA_Intrn.o ..\image\UA1_Aufs.o ..\image\UA2_Aufs.o ..\image\ETH_Net.o ..\image\ARP_Net.o ..\image\IP_Net.o c:\progrg\winavr\bin\..\lib\gcc\avr\4.1.1\..\..\..\..\avr\bin\ld.exe: region text is full (a.out section .text) ..\image\ETH_Net.o: In function `ETH_IRQReadPacketFromNicToQueue': W:\build/..\src\ETH_Net.c:1344: undefined reference to `CM_GetDownloadPort' ==================================================================== there are many more entries with xxx undefined reference to yyy ____ the linker-options-line looks like that: ================== -mmcu=$(MCU) \ -nodefaultlibs \ -Wl,--start-group \ -lc \ -lgcc \ -Wl,--end-group \ --cref \ --defsym \ --stack=0x10FF \ -o $(IMG)\$(PROJECT).ELF ================== MCU is ATMega2561
Re To wrote: > so tag leute, weiß nun (vermute), dass das Programm einfach zur zu > groß ist, oder ? Ja.
danke Jörg , und zu den linkerOpt. ... hab das was gefunden ... was ist denn eine "cross reference table" ?? (--cref) und wie kann ich sehen wie groß das programm ist? ... also gibts da ne möglichkeit ??
Re To wrote: > und wie kann ich sehen wie groß das programm ist? ... also gibts da ne > möglichkeit ?? avr-size.exe ist dein Freund.
jo ..danke, kann dadurch (dass das Prog. zu groß ist) kein hex-file erzeugen ... wie ist es möglich das der linker die MCU-FlashSize ignoriert und einfach das hexfile anlegt obwohl es eig. zu groß ist ?
Wozu sollte der Unsinn gut sein? Zu groß ist zu groß, da hilft alles nix.
Gast
#1016611
Manchmal hilft es noch die Codeoptimierung ein- bzw. höher zu schalten. Allerdings kann es bei schlechtem Programmierstil dann sein, dass gar nix mehr funktioniert wie es sollte.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.