Skocz do zawartości

Błąd podczas kompilacji kodu [ATmega8;C]


joachim726

Pomocna odpowiedź

Witam wszystkich!

To mój pierwszy post na tym forum, więc proszę o wyrozumiałość za ewentualne błędy (w szczególności, jeśli to zły dział). Chcąc zacząć naukę programowania mikro kontrolerów w C (wybrałem ATmega8), zakupiłem zestaw uruchomieniowy ZL2AVR, z programatorem i samym mikro kontrolerem. Ponieważ używam systemu operacyjnego Linux Slackware 13.37, rozpocząłem kompletowanie potrzebnych narzędzi, pod ten właśnie system. Binutils skompilowałem, ze źródeł, podając parametry, podane w tutorialu znalezionym w internecie. Avr-gcc i avr-libc, zainstalowałem z pakietów. Kiedy postanowiłem, sprawdzić czy wszystko działa i skompilowałem ten kod #define F_CPU 1000000L

#include

#include

main()

{

} [\code] , dostałem komunikat błędu: as: unrecognized option '-mmcu=atmega8' [\code] - . Proszę, o pomoc w rozwiązaniu tego problemu (co jest źle), ponieważ, samemu nie jestem w stanie tego zrobić. Jeśli potrzebne są jakieś logi, czy coś w tym stylu - wstawię.

Ps. kompilowałem poleceniem:

 avr-gcc -mmcu=atmega8 -Os -g \
a.out a.c [\code]
Link do komentarza
Share on other sites

To przykład z AVR Studio:

avr-gcc -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT Proba_10.o -MF dep/Proba_10.o.d -c ../Proba_10.c
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Proponuję naprawdę zapoznać się z dokumentacją do avr-gcc, tam są te wszystkie argumenty opisane. Ma być -mmcu.

Ma pewno musi być fumkcja main() poprzedzona jakimś przedrostkiem określającym co ma zwracać(bądź nic). W porzypadku funkcji main() ma tam być int. Czyli program powinien wyglądać tak:

#define F_CPU 1000000L 
#include <avr/io.h> 
#include <util/delay.h> 
int main() 
{ 
}
Link do komentarza
Share on other sites

Poniewaz, musialem re-instalowac moj system (nadal mam Linux'a Slackware 13.37), musialem instalowac wszystko od nowa, tzn. skompilowalem ze zrodel wg. tego poradnika: lhttp://www.nongnu.org/avr-libc/user-manual/install_tools.html .

Kiedy sprobowalem skompilowac ten kod:

#define F_CPU 1000000L
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
}

, poleceniem avr-gcc -mmcu-atmega8 a.c -o a, assemblerowi nie przezkadzala juz opcja "-mmcu", jednak wystapil problem z bilioteka, na wyjscie bledu zostal zwrocony komunikat:

a.c:2:20: fatal error: avr/io.h: No such file or directory
compilation terminated.

. Kiedy zakomentowalem polecenie zalaczajoce ten plik, zostal zwrocony alanoigczny komunikat nt. drogiego polecenia. Po usunieciu obu polecen include, kompilator zwraca ten blad:

/lib/gcc/avr/4.6.1/../../../../avr/bin/ld: cannot find crtm8.o: No such file or directory
/lib/gcc/avr/4.6.1/../../../../avr/bin/ld: cannot find -lc
collect2: ld returned 1 exit status

. Rozumiem, ze popelnilem blad podczas instalacji biblioteki. Bardzo prosze o pomoc.

Ps.Przepraszam, za brak pl. znakow, spowodowane jest to tym, ze system jest swiezo po re-instalacji.

Pps.Jesli pomocne w rozwiozaniu mojego problemu, beda logi systemowe, prosze podac jaki plik jest potrzebny, wkleje.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.