W jednym ze swoich projektów wykorzystuję bibliotekę do obsługi komend, dołączoną do zielonej książki.
Projekt na ukończeniu, przed chwilą wszystko działało. Wprowadzałem pewne poprawki do kodu, przy czym zdecydowana większość dotyczyła zupełnie innego pliku źródłowego. W kodzie odpowiedzialnym za obsługę komend zmieniłem zaledwie kilka linijek w pewnej procedurze.
Próbuję skompilować i niespodzianka... Atmel Studio sypie błędami i warningami, ale nie tam, gdzie coś zmieniałem. Czepia się fragmentu, który jeszcze chwilę temu nie sprawiał żadnych problemów problemów.
Błędy wyglądają następująco:
Kod:
Error 1 parameter 'polecenia_at' is initialized D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 21 1 main
Warning 2 '__progmem__' attribute ignored [-Wattributes] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 21 1 main
Warning 3 braces around scalar initializer [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 23 3 main
Warning 4 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 23 3 main
Warning 5 initialization from incompatible pointer type [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 23 3 main
Warning 6 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 23 3 main
Warning 7 excess elements in scalar initializer [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 23 3 main
Warning 8 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 23 3 main
Warning 9 braces around scalar initializer [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 24 3 main
Warning 10 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 24 3 main
Warning 11 initialization from incompatible pointer type [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 24 3 main
Warning 12 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 24 3 main
Warning 13 excess elements in scalar initializer [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 24 3 main
Warning 14 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 24 3 main
Warning 15 excess elements in scalar initializer [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 24 3 main
Warning 16 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 24 3 main
Warning 17 braces around scalar initializer [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 25 3 main
Warning 18 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 25 3 main
Warning 19 initialization from incompatible pointer type [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 25 3 main
Warning 20 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 25 3 main
Warning 21 excess elements in scalar initializer [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 25 3 main
Warning 22 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 25 3 main
Warning 23 excess elements in scalar initializer [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 25 3 main
Warning 24 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 25 3 main
Warning 25 braces around scalar initializer [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 26 3 main
Warning 26 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 26 3 main
Warning 27 initialization from incompatible pointer type [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 26 3 main
Warning 28 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 26 3 main
Warning 29 excess elements in scalar initializer [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 26 3 main
Warning 30 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 26 3 main
Warning 31 excess elements in scalar initializer [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 26 3 main
Warning 32 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 26 3 main
Warning 33 braces around scalar initializer [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 27 3 main
Warning 34 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 27 3 main
Warning 35 initialization from incompatible pointer type [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 27 3 main
Warning 36 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 27 3 main
Warning 37 excess elements in scalar initializer [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 27 3 main
Warning 38 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 27 3 main
Warning 39 excess elements in scalar initializer [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 27 3 main
Warning 40 (near initialization for 'polecenia_at') [enabled by default] D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 27 3 main
Error 41 expected '=', ',', ';', 'asm' or '__attribute__' before '{' token D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 34 1 main
Error 42 expected '=', ',', ';', 'asm' or '__attribute__' before '{' token D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 102 65 main
Error 43 expected '=', ',', ';', 'asm' or '__attribute__' before '{' token D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 110 66 main
Error 44 expected '=', ',', ';', 'asm' or '__attribute__' before '{' token D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 118 66 main
Error 45 expected '=', ',', ';', 'asm' or '__attribute__' before '{' token D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 136 67 main
Error 46 expected '=', ',', ';', 'asm' or '__attribute__' before '{' token D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 149 67 main
Error 47 old-style parameter declarations in prototyped function definition D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\BMP085\bmp085.h 60 6 main
Error 48 expected '{' at end of input D:\Dokumenty\Atmel Studio\6.1\EtherGeiger_\main\AT\komendy_at.c 159 1 main
plik komendy_at.h wygląda następująco:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Treść pliku komendy_at.c:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
NIE UMIESZCZAMY NA FORUM CAŁYCH BIBLIOTEK Z KSIĄŻEK ANI ICH FRAGMENTÓW - SonixKtoś mi powie co może być nie tak? Sytuacja mnie zaskoczyła i nie mam zielonego pojęcia co zrobić z tą sytuacją...
Czy coś przez przypadek zmieniłem? Jeśli tak, to co?
W przypływie desperacji spróbowałem nawet poprzenosić poszczególne pliki źródłowe do nowego projektu. Nie pomogło...
UPDATE:Właśnie zauważyłem, że jeśli tylko umieszczę całą treść biblioteki komendy_AT w komentarzu, to taki sam zestaw błędów pojawia się w następnej bibliotece.
Występuje jedna prawidłowość - czepia się do zmiennych extern...
UPDATE2:Wychodzi jednak na to, że dodane biblioteki coś psują w kodzie. Po ich odkomentowaniu wszystko się kompiluje.
Poniżej treść kłopotliwych plików:
bmp085.c
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
bmp085.h
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
twi.c
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
twi.h
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.