znawców WinAVR

Dec 05, 2005 8 Replies

Witam.



Mam pytanie czy można jakoś uruchomić make.exe plus wszystkie opcje do kompilacji projektu z WinAvr w innym edytorze np. VisualStudio 6.0. Edytor WinAvr nie jest doskonały stąd ten pomysł. Czy da się więc podglądnąć jaki program (programy) i z jakimi parametrami po kolei są wołane po wybraniu z menu 'Tools' opcji 'Make All'. Z tego co widzę to make.exe ale nie wiem z jakimi dokładnie flagami, podejrzewam że na końcu jest plik make.



Proszę o jakieś wskazówki.


Viki snipped-for-privacy@poczta.onet.pl> napisał(a):

Sprawdź w ustawieniach tego "niedoskonałego" edytora , z jakim parametrem jest wywoływany make.exe dla menu "Tools->[WinAvr]Make All".Ja obstawiam , że opcja brzmi "all" ;)

Piotrek

PS Poza PN-em , istnieją inne edytory dedykowane avrgcc.

probowalem uruchomic make z taka opcja i nic, nie jej tez w helpie.

Viki napisał/a:

musisz się znajdować w katalogu z projektem, w którym jest makefile oraz mieć ustawione ścieżki w systemie do katalogu w którym znajduje się make.exe avr-gcc.exe itp. (instalka winavr ustawia zmienną PATH ale możesz to sprawdzić na wszelki wypadek)

pozdrawiam czerstwy

Zobacz plik makefile, w nim znajdziesz opcje i co kazda wywoluje. Popularne opcje to 'make all' 'make clean' 'make program'... Makefile w winavr ma duzo komentarzy.

Tomek

czerstwy snipped-for-privacy@o2.pl napisał(a):

Na potwierdzenie słów kolegi i swoich: C:\WinAVR\ds18x20_demo>make.exe clean

-------- begin --------

Cleaning project: rm -f main.hex rm -f main.eep rm -f main.obj rm -f main.cof rm -f main.elf rm -f main.map rm -f main.obj rm -f main.a90 rm -f main.sym rm -f main.lnk rm -f main.lss rm -f main.o onewire.o delay.o ds18x20.o uart.o crc8.o rm -f main.lst onewire.lst delay.lst ds18x20.lst uart.lst crc8.lst rm -f main.s onewire.s delay.s ds18x20.s uart.s crc8.s rm -f main.d onewire.d delay.d ds18x20.d uart.d crc8.d rm -f .dep/* Errors: none

-------- end --------

C:\WinAVR\ds18x20_demo>make.exe all

-------- begin -------- avr-gcc (GCC) 3.4.4 Copyright (C) 2004 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.

Compiling: main.c avr-gcc -c -mmcu=atmega8515 -I. -gdwarf-2 -Os -funsigned-char -funsigned-bitfi elds -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99 -DF_OSC=8000000 -MD -MP -MF .dep/main.o.d main.c -o main.o

Compiling: onewire.c avr-gcc -c -mmcu=atmega8515 -I. -gdwarf-2 -Os -funsigned-char -funsigned-bitfi elds -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=onewire.l st -std=gnu99 -DF_OSC=8000000 -MD -MP -MF .dep/onewire.o.d onewire.c -o onewire o

Compiling: delay.c avr-gcc -c -mmcu=atmega8515 -I. -gdwarf-2 -Os -funsigned-char -funsigned-bitfi elds -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=delay.lst -std=gnu99 -DF_OSC=8000000 -MD -MP -MF .dep/delay.o.d delay.c -o delay.o

Compiling: ds18x20.c avr-gcc -c -mmcu=atmega8515 -I. -gdwarf-2 -Os -funsigned-char -funsigned-bitfi elds -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=ds18x20.l st -std=gnu99 -DF_OSC=8000000 -MD -MP -MF .dep/ds18x20.o.d ds18x20.c -o ds18x20 o

Compiling: uart.c avr-gcc -c -mmcu=atmega8515 -I. -gdwarf-2 -Os -funsigned-char -funsigned-bitfi elds -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=uart.lst -std=gnu99 -DF_OSC=8000000 -MD -MP -MF .dep/uart.o.d uart.c -o uart.o

Compiling: crc8.c avr-gcc -c -mmcu=atmega8515 -I. -gdwarf-2 -Os -funsigned-char -funsigned-bitfi elds -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=crc8.lst -std=gnu99 -DF_OSC=8000000 -MD -MP -MF .dep/crc8.o.d crc8.c -o crc8.o

Linking: main.elf avr-gcc -mmcu=atmega8515 -I. -gdwarf-2 -Os -funsigned-char -funsigned-bitfield s -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o -std =gnu99 -DF_OSC=8000000 -MD -MP -MF .dep/main.elf.d main.o onewire.o delay.o ds18 x20.o uart.o crc8.o --output main.elf -Wl,-Map=main.map,--cref -lm

Creating load file for Flash: main.hex avr-objcopy -O ihex -R .eeprom main.elf main.hex

Creating load file for EEPROM: main.eep avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \

--change-section-lma .eeprom=0 -O ihex main.elf main.eep

Creating Extended Listing: main.lss avr-objdump -h -S main.elf > main.lss

Creating Symbol Table: main.sym avr-nm -n main.elf > main.sym

Size after: main.elf : section size addr text 5854 0 data 10 8388704 bss 116 8388714 noinit 0 8388830 eeprom 0 8454144 debug_aranges 120 0 debug_pubnames 987 0 debug_info 5018 0 debug_abbrev 1435 0 debug_line 4050 0 debug_str 1260 0 debug_ranges 12 5854 Total 18862

Errors: none

-------- end --------

Pozdrawiam Piotrek

PS Myślałem ,że "Current Directory" na projekt i make.exe w PATH to się rozumie samo przez się, jednak się pomyliłem ;-)

Bo to nie jest opcja programu make ale obiekt docelowy do utworzenia. Podobnie mozesz napisac np. "make abcd.hex" albo "make main.elf" - wszystko zalezy od zawartosci makefile'a.

Adam Dybkowski snipped-for-privacy@amwaw.edu.pl> napisał(a):

Ja bym to porównał do DOS-owego batch'a , gdzie parametr jest nazwą etykiety , od której należy wykonać instrukcje . Nooo... , cos w tym guscie ;-)

Piotrek

Proponuje Ci edytor Ultraedit. Jest to zawansowany edytor umozliwiajacy uruchamianie zewnetrznych programow np. *.batch wywolujacych make z odpowiednim parametrem. Poza edycja plikow zrodlowych, kasowania plikow wynikowych i kompilowania projektu masz mozliwosc ogladania efektu kompilacji w oknie "Output Window", czyli to o co Ci chodzi. Kiedys uzywalem w taki sposob tego edytora ale niestety nie pamietam szczegolow. Edytor ten zawiera rozlegly help, wiec nie powienienes miec z tym problemow. Jesli zdecydujesz sie tak go uzyc i dojdziesz do jakiegos rozwiazania chetnie dowiem sie (chociazby na grupie dyskusyjnej) w jak to zrobiles. Pozdrawiam i zycze powodzenia.

Jacek M.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required