Problem z WinAVR

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
Awatar użytkownika
grysek67
Użytkownik
Posty: 315
Rejestracja: 27 cze 2007, 6:34
Lokalizacja: Limanowa
Kontakt:

Problem z WinAVR

Post autor: grysek67 » 06 maja 2008, 13:33

Witam

Mam problem z programem WinAVR a mianowicie nie tworzy on pliku *.hex oraz *.bin
Zrobiłem wszystko tak jak było napisane w pierwszej częsci kursu AVR-GCC i wszystko wskazuje na to że powinno je tworzyć... Co mam zrobić zeby zadziałało tak jak powinno??

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 06 maja 2008, 13:39

Tzn. co zrobiłeś? (nie znam kursu)

Procedura jest taka:

1. Ściągasz sobie WinAVR (podobno najnowszy ma jakieś błędy więc ten ostatni z 2007 będzie najlepszy)
2. Instalujesz
3. Otwierasz programmers notepad , wybierasz że chcesz pisać w C nad polem edycji kodu
4. Zapisujesz plik w jakimś katalogu
5. Kopiujesz do tego katalogu z projektem plik makefile (jeżeli nie masz to bierzesz plik WinAvr/mfile/makefile_template i zmieniasz mu nazwę na makefile i umieszczasz w katalogu z kodem w C)
6. Edytujesz w makefile'u linie odnośnie programatora, pliku z kodem - TARGET oraz wpisujesz jaki procesor chcesz używać
7. W menu PN wybierasz [WINAVR] Make All i tworzy ci hex'a
8. W menu PN wybierasz [Winavr] Program i wgrywa ci wsad do procka.

Awatar użytkownika
PiotrekEl
Użytkownik
Posty: 251
Rejestracja: 02 mar 2007, 19:39
Lokalizacja: Znad Jezioraq

Post autor: PiotrekEl » 06 maja 2008, 13:46

A czytałeś na forum temat:
https://forum.elportal.pl/viewtopic.php?t=796

edit// Przepraszam myślałem że chodzi o integrację AVR Studio z WinAVR.
Ostatnio zmieniony 06 maja 2008, 14:33 przez PiotrekEl, łącznie zmieniany 1 raz.

Awatar użytkownika
grysek67
Użytkownik
Posty: 315
Rejestracja: 27 cze 2007, 6:34
Lokalizacja: Limanowa
Kontakt:

Post autor: grysek67 » 06 maja 2008, 13:52

snow pisze:7. W menu PN wybierasz [WINAVR] Make All i tworzy ci hex'a
W menu to znaczy gdzie??

Awatar użytkownika
PiotrekEl
Użytkownik
Posty: 251
Rejestracja: 02 mar 2007, 19:39
Lokalizacja: Znad Jezioraq

Post autor: PiotrekEl » 06 maja 2008, 14:08

W menu Programmers Notepada.

Awatar użytkownika
grysek67
Użytkownik
Posty: 315
Rejestracja: 27 cze 2007, 6:34
Lokalizacja: Limanowa
Kontakt:

Post autor: grysek67 » 06 maja 2008, 14:10

Tyle wiem... tylko konkretnie w której zakładce??

Awatar użytkownika
PiotrekEl
Użytkownik
Posty: 251
Rejestracja: 02 mar 2007, 19:39
Lokalizacja: Znad Jezioraq

Post autor: PiotrekEl » 06 maja 2008, 14:16

W programmers notepadzie u góry jest Menu. Wybierasz "Tools", rozwija się lista i wybierasz:
[WinAVR]MakeAll. Kompiluje Ci się program i tworzy kilka plików w tym hex.

Awatar użytkownika
grysek67
Użytkownik
Posty: 315
Rejestracja: 27 cze 2007, 6:34
Lokalizacja: Limanowa
Kontakt:

Post autor: grysek67 » 06 maja 2008, 14:20

Spróbowałem i nie tworzy pliku hex :cry:
W okienku OUTPUT pokazuje się cos takiego
Załączniki
2008-05-06_152024.png
2008-05-06_152024.png (2.72 KiB) Przejrzano 8890 razy

Awatar użytkownika
PiotrekEl
Użytkownik
Posty: 251
Rejestracja: 02 mar 2007, 19:39
Lokalizacja: Znad Jezioraq

Post autor: PiotrekEl » 06 maja 2008, 14:26

Utworzyłeś makefile?
Wygląda na to że makefile nie utworzyłeś. Pamiętaj że w makefile, jak podajesz nazwę pliku który chcesz skompilować nie pisz rozszerzenia pliku.

Awatar użytkownika
grysek67
Użytkownik
Posty: 315
Rejestracja: 27 cze 2007, 6:34
Lokalizacja: Limanowa
Kontakt:

Post autor: grysek67 » 06 maja 2008, 14:29

plik zapisałem a makefile skopiowałem z folderu WinAVR i zapisałem w nim swoje wartości, nazwe procka itp. (takie jak w 1 częsci kursu)

Awatar użytkownika
PiotrekEl
Użytkownik
Posty: 251
Rejestracja: 02 mar 2007, 19:39
Lokalizacja: Znad Jezioraq

Post autor: PiotrekEl » 06 maja 2008, 14:35

Jakiego kursu?
Może spróbuj zrobić zgodnie z tym opisem:
http://www.dioda.com.pl/forum/topics20/ ... t=makefile

Awatar użytkownika
grysek67
Użytkownik
Posty: 315
Rejestracja: 27 cze 2007, 6:34
Lokalizacja: Limanowa
Kontakt:

Post autor: grysek67 » 06 maja 2008, 14:53

Próbowalem zrobic tak jak tam pisze i dalej to samo :sad:

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 06 maja 2008, 15:30

Musisz make file wyedytowac w liniach:

-wpisać nazwę procesora:

Kod: Zaznacz cały

# MCU name
MCU = atmega8

-podać częstotliwość procesora

Kod: Zaznacz cały

# Processor frequency.
#     This will define a symbol, F_CPU, in all source code files equal to the 
#     processor frequency. You can then use this symbol in your source code to 
#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
#     automatically to create a 32-bit value in your source code.
F_CPU = 1000000
-podać nazwę pliku który chcesz skompilować bez rozszerzenia:

Kod: Zaznacz cały

# Target file name (without extension).
TARGET = main
i mieć umieszczony ten plik makefile w tym samym katalogu co plik który chcesz skompilować.


Powyżej przykład dla: Atmega8, zegar 1MHz, plik który kompilujesz main.c

Jak już masz makefile i plik w jednym katalogu to w PN wybierasz Tools/[WinAvr] Make All i powinno się skompilować bez problemu

Awatar użytkownika
grysek67
Użytkownik
Posty: 315
Rejestracja: 27 cze 2007, 6:34
Lokalizacja: Limanowa
Kontakt:

Post autor: grysek67 » 06 maja 2008, 18:37

Wszystko mam tak jak powinno być i kompiluje tylko wcale nie tworzy pliku *.hex i *.bin ani żadnego innego... po wybraniu opcji [WinAVR] make na okienku output pokazuje się to
Załączniki
screen.PNG
screen.PNG (3.39 KiB) Przejrzano 8852 razy

Awatar użytkownika
PiotrekEl
Użytkownik
Posty: 251
Rejestracja: 02 mar 2007, 19:39
Lokalizacja: Znad Jezioraq

Post autor: PiotrekEl » 06 maja 2008, 18:42

A nie nacisnąłeś przypadkiem MakeClean zamiast MakeAll??

ODPOWIEDZ