Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 29 mar 2024, o 00:28


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
 Tytuł: Makefile
PostNapisane: 4 sie 2018, o 11:28 
Offline
Nowy

Dołączył(a): 29 lis 2016
Posty: 23
Pomógł: 0

Czy ten makefile jest dobry? Chcę zaprogramować attiny2313, za pomocę programu Geany na Linuxie i taki znalazłem wzór makefile. Kompilacja przebiega prawidłowo, ale przy programowaniu procka otrzymuję komunikat:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Tutaj makefile:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Log z kompilacji:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Takie pliki wygenerowało:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Makefile
PostNapisane: 4 sie 2018, o 11:39 
Offline
Użytkownik

Dołączył(a): 22 gru 2013
Posty: 296
Lokalizacja: Szczecin
Pomógł: 47

Zalecam oszczędność (Prezes PKO ;) ), lub większy kontroler.

Składnia: [ Pobierz ] [ Ukryj ]
język bash
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Makefile
PostNapisane: 4 sie 2018, o 15:51 
Offline
Nowy

Dołączył(a): 29 lis 2016
Posty: 23
Pomógł: 0

Tylko że to prosty program do migania diodą z tej strony https://starter-kit.nettigo.pl/2012/04/ ... -opornych/ Chyba niepotrzebnie tyle plików mi wygenerował, bo eepromu przecież nie programuję, może dlatego tyle miejsca zajmuje.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Makefile
PostNapisane: 4 sie 2018, o 16:12 
Offline
Użytkownik

Dołączył(a): 22 gru 2013
Posty: 296
Lokalizacja: Szczecin
Pomógł: 47

Ten make dodaje chyba wszystko co może.
Proponuję zainstalować w Twoim Linuksie- Eclipse'a, tam z poziomu IDE będzie prościej zapanować nad kompilacją.
Opanować make też można, ale to już "wyższy stopień wtajemniczenia", na początek niepotrzebny.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Makefile
PostNapisane: 4 sie 2018, o 17:28 
Offline
Nowy

Dołączył(a): 29 lis 2016
Posty: 23
Pomógł: 0

Myślałem o tym, ale widziałem opinie, że Eclipse jest zasobożerne i może zamulać na moim komputerze. AVR8 Burn-O-Mat u mnie dość długo się uruchamia, więc nawet nie próbowałem instalować Eclipse, wolę coś lżejszego. Kiedyś komendy odpalałem z ręcznie z konsoli, ale wolałbym trochę zautomatyzować to, żeby wystarczyło tylko raz makefile dostosować do danego projektu i w wygodny sposób kompilować i programować jednym kliknięciem. Tylko właśnie te przykładowe makefile to takie kombajny są, a prostszych gdzie wystarczy zdefiniować podstawowe parametry kompilacji i programatora nie znalazłem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Makefile
PostNapisane: 4 sie 2018, o 18:10 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

A co Ty masz za komputer, że długo Ci się odpalają softy? Jak nie chcesz lub nie możesz go zmienić to powinno wystarczyć odpalanie ręcznie kompilatora a na koniec linkera.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Makefile
PostNapisane: 4 sie 2018, o 19:08 
Offline
Nowy

Dołączył(a): 29 lis 2016
Posty: 23
Pomógł: 0

Na starszym stacjonarnym robię, to nie kilkurdzeniowy sprzęt z kilka gb ramu, więc niektóre bardziej rozbudowane programy zamulają, ale do prostych zadań wystarcza. BurnOMat jest w Javie napisany i pewnie dlatego pojawia się po nieco dłuższej chwili, bo inne programy działają szybciej. Skoro na Eclipse sporo osób narzekało, że im wolno chodzi, to u mnie na pewno nie będzie lepiej. Trudno, coś będę kombinować z opcjami w Geany, ale wolałem to do makefile wrzucić.

Edit:
Pewnie głupie pytanie, ale jak definiuje się typ mikrokontrolera w avr-gcc i avrdude? Z tego co wiem, to w parametrach do avr-gcc podaje się -mmcu=attiny2313, a do polecenia avrdude -p t2313. Ale tamten makefile do obu poleceń wstawia attiny2313. Avrdude rozróżnia obie formy?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Makefile
PostNapisane: 4 sie 2018, o 21:05 
Offline
Użytkownik

Dołączył(a): 22 gru 2013
Posty: 296
Lokalizacja: Szczecin
Pomógł: 47

Puść z konsoli:
avrdude -pattiny2313 -P usb -c usbasp -n
lub
avrdude -pt2313 -P usb -c usbasp -n
to sprawdzisz.

Jak masz zabytkowy PC to zobacz czy np. to nie będzie odpowiednie:
https://www.forbot.pl/forum/topics20/programowanie-programowanie-avr-w-linux-vt3667.htm
http://home.roboticlab.eu/en/examples/setup/kontrollerlab



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Makefile
PostNapisane: 4 sie 2018, o 21:07 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Bawisz się linuxem a nie spróbujesz tego co Ci podpowiedziałem.

Trudno, podrzucam przykład jak Mirkowy MkClipse (for Windows) kompiluje jeden z moich sofcików i nie potrzebujesz żadnego makefile'a:
avr-gcc -Wall -Os -Wstrict-aliasing=1 -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32a -DF_CPU=11059200UL -MMD -MP -MF"Release/MK_USART/mkuart.d" -MT"Release/MK_USART/mkuart.o" -c -o "Release/MK_USART/mkuart.o" "MK_USART/mkuart.c""
avr-gcc -Wall -Os -Wstrict-aliasing=1 -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32a -DF_CPU=11059200UL -MMD -MP -MF"Release/mk_build.d" -MT"Release/mk_build.o" -c -o "Release/mk_build.o" "mk_build.c""
avr-gcc -Wall -Os -Wstrict-aliasing=1 -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32a -DF_CPU=11059200UL -MMD -MP -MF"Release/main.d" -MT"Release/main.o" -c -o "Release/main.o" "main.c""
avr-gcc -Wall -Os -Wstrict-aliasing=1 -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32a -DF_CPU=11059200UL -MMD -MP -MF"Release/LCD/lcd44780.d" -MT"Release/LCD/lcd44780.o" -c -o "Release/LCD/lcd44780.o" "LCD/lcd44780.c""

avr-gcc -Wl,-Map,Release/DEM401_tester.map -Wl,--gc-sections -mmcu=atmega32a -o "Release/DEM401_tester.elf" Release/LCD/lcd44780.o Release/MK_USART/mkuart.o Release/main.o Release/mk_build.o
avr-objdump -h -S Release/DEM401_tester.elf > "Release/DEM401_tester.lss"
avr-objcopy -R .eeprom -R .fuse -R .lock -R .signature -O ihex Release/DEM401_tester.elf "Release/DEM401_tester.hex"
avr-objcopy -R .eeprom -R .fuse -R .lock -R .signature -O binary Release/DEM401_tester.elf "Release/DEM401_tester.bin"
avr-objcopy -j .eeprom --no-change-warnings --change-section-lma .eeprom=0 -O ihex Release/DEM401_tester.elf "Release/DEM401_tester.eep"
avr-size --format=avr --mcu=atmega32a Release/DEM401_tester.elf



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Makefile
PostNapisane: 4 sie 2018, o 22:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lip 2013
Posty: 208
Lokalizacja: Kielce
Pomógł: 15

krish napisał(a):
Puść z konsoli:
avrdude -pattiny2313 -P usb -c usbasp -n
lub
avrdude -pt2313 -P usb -c usbasp -n
to sprawdzisz.

Jak masz zabytkowy PC to zobacz czy np. to nie będzie odpowiednie:
https://www.forbot.pl/forum/topics20/programowanie-programowanie-avr-w-linux-vt3667.htm
http://home.roboticlab.eu/en/examples/setup/kontrollerlab


Pod Linuksem bez parametru - P usb

Tam porty są inaczej nazywane. Wystarczy w tym przypadku parametr -c usbasp



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: Makefile
PostNapisane: 5 sie 2018, o 11:13 
Offline
Nowy

Dołączył(a): 29 lis 2016
Posty: 23
Pomógł: 0

micky napisał(a):
Bawisz się linuxem a nie spróbujesz tego co Ci podpowiedziałem.

Trudno, podrzucam przykład jak Mirkowy MkClipse (for Windows) kompiluje jeden z moich sofcików i nie potrzebujesz żadnego makefile'a:
To to wiem, że w konsoli wystarczy odpalić
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
i to działa, kiedyś tak właśnie robiłem. Teraz wpisałem sobie te polecenia w Geany do zakładki Zbuduj, dzięki czemu od razu kompiluje i programuje procka po wciśnięciu F9, ale nie edytuje się poleceń tak wygodnie jak w Makefile.
kalani napisał(a):
Widać, że programowanie idzie prawidłowo ale wsad się nie mieści. Na początek powinieneś w sekcji opisanej jako "Library Options" pozbyć się niepotrzebnych w tym przypadku bibliotek: libm i libprinf. To powinno odchudzić kod.
Zakomentuj to co jest i utwórz symbole bez zawartości. W razie potrzeby skorzystania z printfów z floatami będzie można to łatwo odkomentować.
Spróbuję, ale pewnie i tak nie odchudzi tak bardzo.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO