ATNEL tech-forum https://forum.atnel.pl/ |
|
Import z AVRStudio5 do MkCLIPSE https://forum.atnel.pl/topic24052.html |
Strona 1 z 1 |
Autor: | koczis_ws [ 6 gru 2021, o 12:48 ] |
Tytuł: | Import z AVRStudio5 do MkCLIPSE |
Witam, Najpierw się chcę przywitać bo to jest mój pierwszy wpis na forum. Tak jak w temacie, Chciałem przenieść projekt napisany w AS , ale nic się nie otwiera pomimo, że w drzewku są pliki. Utworzyłem nowy projekt i przekopiowałem kod ale niestety przy kompilacji pojawiają się błędy. Nadmieniam, że w AS projekt kompiluje się i program działa na kontrolerze prawidłowo. Czy są jakieś różnice w składni? |
Autor: | mirekk36 [ 6 gru 2021, o 14:15 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
Przede wszystkim to nie ma takiej możliwości żeby wprost przenieść projekt z AS do MkClipse. Owszem można to zrobić ale trzeba po prostu skopiować tylko pliki *.c i *.h z folderu projektu, który był robiony w AS. Struktura folderu może zostać identyczna. I w MkClipse już powinno to działać, chyba że w AS są jakieś głębsze zależności albo nowszego toolchaina niż ten który jest w MkClipse. Jeśli nie działa i są błędy kompilacji - to na podstawie opisu problemu - może pomóc tylko jasnowidz - skoro nie wiadomo jakie to się błędy kompilacji pojawiają, a można przecież wkleić przecież widok tego co się pojawia w konsoli po kompilacji żeby pokazać innym o jakie błędy chodzi |
Autor: | koczis_ws [ 7 gru 2021, o 01:45 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
Proszę bardzo W trakcie kompilacji błędy są wykrywane stopniowo. Po zmianach w kodzie pojawiają się następne. Aktualnie stanęło na : 'itoa( temperatureH, str, 10 );' co w AS oznacza zamianę int na string np. do wyświetlenia na LCD. |
Autor: | micky [ 7 gru 2021, o 06:32 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
Co to znaczy, że stanęło? Wklej komunikaty z kompilatora. |
Autor: | koczis_ws [ 7 gru 2021, o 10:41 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
Poniżej zrzut. |
Autor: | micky [ 7 gru 2021, o 19:27 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
A z klamrami masz wszystko ok? Nie zjadłeś czegoś lub nie pomieszałeś ze średnikami? |
Autor: | koczis_ws [ 7 gru 2021, o 23:05 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
Napewno nie bo program działa pod AVR Studio. |
Autor: | mirekk36 [ 7 gru 2021, o 23:06 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
zdecydowanie to jest to o czym pisze micky |
Autor: | koczis_ws [ 7 gru 2021, o 23:22 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
mirekk36 napisał(a): zdecydowanie to jest to o czym pisze micky Hmmm . . . ale co? ------------------------ [ Dodano po: 5 minutach ] Tutaj przebieg kompilacji: compiling process, please wait... "C:\Users\Wlodek\Documents\MkClipse\AVR Toolchain\bin\avr-gcc" -Wall -Os -Wstrict-aliasing=1 -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -Wl,--section-start=.text=0x0000 -mmcu=atmega8 -DF_CPU=8000000UL -MMD -MP -MF"Release/mk_build.d" -MT"Release/mk_build.o" -c -o "Release/mk_build.o" "mk_build.c"" "C:\Users\Wlodek\Documents\MkClipse\AVR Toolchain\bin\avr-gcc" -Wall -Os -Wstrict-aliasing=1 -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -Wl,--section-start=.text=0x0000 -mmcu=atmega8 -DF_CPU=8000000UL -MMD -MP -MF"Release/HD44780.d" -MT"Release/HD44780.o" -c -o "Release/HD44780.o" "HD44780.c"" "C:\Users\Wlodek\Documents\MkClipse\AVR Toolchain\bin\avr-gcc" -Wall -Os -Wstrict-aliasing=1 -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -Wl,--section-start=.text=0x0000 -mmcu=atmega8 -DF_CPU=8000000UL -MMD -MP -MF"Release/main.d" -MT"Release/main.o" -c -o "Release/main.o" "main.c"" main.c: In function 'main': main.c:182:13: warning: implicit declaration of function 'itoa' [-Wimplicit-function-declaration] itoa( temperatureH, str, 10 ); ^ main.c: In function 'Zapis': main.c:226:28: warning: passing argument 1 of '__eewr_byte_m8' makes pointer from integer without a cast [-Wint-conversion] eeprom_write_byte( adres, humidityL ); ^ In file included from main.c:18:0: c:\users\wlodek\documents\mkclipse\avr toolchain\avr\include\avr\eeprom.h:694:6: note: expected 'uint8_t * {aka unsigned char *}' but argument is of type 'int' void eeprom_write_byte (uint8_t *__p, uint8_t __value); ^ main.c:228:27: warning: passing argument 1 of '__eewr_byte_m8' makes pointer from integer without a cast [-Wint-conversion] eeprom_write_byte(( adres + 1 ), humidityH ); ^ In file included from main.c:18:0: c:\users\wlodek\documents\mkclipse\avr toolchain\avr\include\avr\eeprom.h:694:6: note: expected 'uint8_t * {aka unsigned char *}' but argument is of type 'int' void eeprom_write_byte (uint8_t *__p, uint8_t __value); ^ main.c:230:27: warning: passing argument 1 of '__eewr_byte_m8' makes pointer from integer without a cast [-Wint-conversion] eeprom_write_byte(( adres + 2 ), 0xAA ); ^ In file included from main.c:18:0: c:\users\wlodek\documents\mkclipse\avr toolchain\avr\include\avr\eeprom.h:694:6: note: expected 'uint8_t * {aka unsigned char *}' but argument is of type 'int' void eeprom_write_byte (uint8_t *__p, uint8_t __value); ^ main.c:232:27: warning: passing argument 1 of '__eewr_byte_m8' makes pointer from integer without a cast [-Wint-conversion] eeprom_write_byte(( adres + 3 ), temperatureL ); ^ In file included from main.c:18:0: c:\users\wlodek\documents\mkclipse\avr toolchain\avr\include\avr\eeprom.h:694:6: note: expected 'uint8_t * {aka unsigned char *}' but argument is of type 'int' void eeprom_write_byte (uint8_t *__p, uint8_t __value); ^ main.c:234:27: warning: passing argument 1 of '__eewr_byte_m8' makes pointer from integer without a cast [-Wint-conversion] eeprom_write_byte(( adres + 4 ), temperatureH ); ^ In file included from main.c:18:0: c:\users\wlodek\documents\mkclipse\avr toolchain\avr\include\avr\eeprom.h:694:6: note: expected 'uint8_t * {aka unsigned char *}' but argument is of type 'int' void eeprom_write_byte (uint8_t *__p, uint8_t __value); ^ main.c:236:27: warning: passing argument 1 of '__eewr_byte_m8' makes pointer from integer without a cast [-Wint-conversion] eeprom_write_byte(( adres + 5 ), 0xAA ); ^ In file included from main.c:18:0: c:\users\wlodek\documents\mkclipse\avr toolchain\avr\include\avr\eeprom.h:694:6: note: expected 'uint8_t * {aka unsigned char *}' but argument is of type 'int' void eeprom_write_byte (uint8_t *__p, uint8_t __value); ^ main.c:238:27: warning: passing argument 1 of '__eewr_byte_m8' makes pointer from integer without a cast [-Wint-conversion] eeprom_write_byte(( adres + 6 ), suma_kontrolna ); ^ In file included from main.c:18:0: c:\users\wlodek\documents\mkclipse\avr toolchain\avr\include\avr\eeprom.h:694:6: note: expected 'uint8_t * {aka unsigned char *}' but argument is of type 'int' void eeprom_write_byte (uint8_t *__p, uint8_t __value); ^ main.c:240:27: warning: passing argument 1 of '__eewr_byte_m8' makes pointer from integer without a cast [-Wint-conversion] eeprom_write_byte(( adres + 7 ), 256 ); ^ In file included from main.c:18:0: c:\users\wlodek\documents\mkclipse\avr toolchain\avr\include\avr\eeprom.h:694:6: note: expected 'uint8_t * {aka unsigned char *}' but argument is of type 'int' void eeprom_write_byte (uint8_t *__p, uint8_t __value); ^ main.c:240:42: warning: large integer implicitly truncated to unsigned type [-Woverflow] eeprom_write_byte(( adres + 7 ), 256 ); ^ main.c: In function 'dht11_gettemperature': main.c:117:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ main.c: In function 'dht11_gethumidity': main.c:128:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ ---------------- WARNING --> main.c --> Line: 182 ------------------------ [ Dodano po: 35 minutach ] Może dajmy spokój tamtemu programowi. Stworzyłem nowy projekt, przekopiowałem kod z AVR Studio i pomimo poprawnego działania w AS tu nie da się skompilować. Poniżej kod: |
Autor: | Marhef [ 8 gru 2021, o 18:16 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
koczis_ws napisał(a): Akurat ten warning oznacza, że masz funkcję zwracającą zmienną typu uint8_t, a jest możliwy warunek, w którym brakuje return. implicit declaration of function 'itoa' Brakuje include'a (w as może być dodany w ustawieniach projektu, w mkclipse musisz dodać ręcznie). passing argument 1 of '__eewr_byte_m8' makes pointer from integer without a cast Funkcja tworzy wskaźnik z liczby bez rzutowania Trzy pierwsze błędy, pierwsze wyniki wyszukiwania w google. Kolejny: expected 'uint8_t * {aka unsigned char *}' but argument is of type 'int' Wymagany jest argument typu uint8_t, a jest typu int Nie mam czasu szukać dalej. Powodzenia EDIT: Jeżeli w mkclipse odznaczysz w settings "warning as error", to Ci się skompiluje. I pewnie nawet będzie działało |
Autor: | koczis_ws [ 8 gru 2021, o 20:53 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
Nie da się edytować postu ??? , więc piszę nowy. Poprawiłem trochę kod i dostaję następujący komunikat: "C:\Users\Wlodek\Documents\MkClipse\AVR Toolchain\bin\avr-gcc" -Wall -Os -Wstrict-aliasing=1 -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -Wl,--section-start=.text=0x0000 -mmcu=attiny13a -DF_CPU=8000000UL -MMD -MP -MF"Release/mk_build.d" -MT"Release/mk_build.o" -c -o "Release/mk_build.o" "mk_build.c"" "C:\Users\Wlodek\Documents\MkClipse\AVR Toolchain\bin\avr-gcc" -Wall -Os -Wstrict-aliasing=1 -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -Wl,--section-start=.text=0x0000 -mmcu=attiny13a -DF_CPU=8000000UL -MMD -MP -MF"Release/main.d" -MT"Release/main.o" -c -o "Release/main.o" "main.c"" avr-gcc" -Wl,-Map,Release/Test At13.map -Wl,--undefined=MkBuildVersion -Wl,--undefined=MkBuildNumber -Wl,--undefined=MkBuildDate -Wl,--undefined=MkBuildTime -Wl,--section-start=.text=0x0000 -Wl,--gc-sections -mmcu=attiny13a -o "Release/Test At13.elf" Release/main.o Release/mk_build.o avr-gcc: error: At13.map: No such file or directory Skąd mam wziąć At13.map ? I co znaczą te rzeczy w przedostatniej linii? |
Autor: | koczis_ws [ 8 gru 2021, o 21:13 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
Po poprawie wyeliminowałem to: main.c: In function 'dht11_gethumidity': main.c:128:1: warning: control reaches end of non-void function [-Wreturn-type] Domyśliłem się, że chodzi o to, że funkcja nie zawierała instrukcji 'return' a jest typu non-void. W AS nie musi być. Ja w tym programie akurat do potrzebnej wartości użyłem zmiennej globalnej. Dopisałem ten return ot tak dla świętego spokoju, ale nadal są problemy. Poniżej nowy kod: |
Autor: | fofex [ 8 gru 2021, o 21:31 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
koczis_ws napisał(a): co znaczą te rzeczy Te rzeczy znaczą, że w nazwie projektu jest/są spacj(a/e) ------------------------ [ Dodano po: 3 minutach ] koczis_ws napisał(a): W AS nie musi być Tam miałeś ustawiony niższy poziom raportowania błędów, a więc warning (formalnie, faktycznie jest to poważny błąd) nie został wyemitowany. |
Autor: | Marhef [ 8 gru 2021, o 22:36 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
koczis_ws napisał(a): W MkCLIPSE kompiluje się bez błędów Potwierdzam. Skopiowałem, wybrałem procek z listy. Wybrałem build. Działa
|
Autor: | koczis_ws [ 9 gru 2021, o 10:59 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
Marhef napisał(a): koczis_ws napisał(a): W MkCLIPSE kompiluje się bez błędów Potwierdzam. Skopiowałem, wybrałem procek z listy. Wybrałem build. DziałaProblem leży tu w moim przypadku: avr-gcc: error: At13.map: No such file or directory Widać brakuje tego pliku w mojej instalacji. Skąd go wziąć i gdzie ma być ulokowany ? ------------------------ [ Dodano po: 6 minutach ] Usunąłem spację z nazwy projektu i kurde skompilowało się Dzięki za pomoc |
Autor: | koczis_ws [ 18 sty 2022, o 10:35 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
Witam ponownie, Znowu problem po przeniesieniu projektu z AVR Studio. Ale bardzo dziwny. Po wpisaniu plików projektu ładnie się skompilował i załadował do mikrokontrolera. Ale później chciałem załadować innym programatorem i po wciśnięciu 'Builid' pojawił się błąd kompilacji. Nic nie zmieniałem w plikach projektu i było to w tej samej sesji MkClipse. Błąd dotyczy dołączonej biblioteki programowego UART do Tiny 13. język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
A błąd jest taki: język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
------------------------ [ Dodano po: 37 minutach ] Jakieś dziwne to forum, nie mogę edytować swojego postu. Jest tam drobna nieścisłość bo usunąłem jedną zaremowaną linię z kodu i linia błędu się przesunęła z 10 na 11 |
Autor: | koczis_ws [ 18 sty 2022, o 13:35 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
Chciałem tak bo zauważyłem, że mój programator znacznie szybciej działa przez MkClipse niż AS ??? Programowanie w AS i przenoszenie pliku HEX to trochę upierdliwe. Ale moje pierwsze pytanie było czemu za pierwszym razem poszło a potem już nie chciało? |
Autor: | Marhef [ 19 sty 2022, o 21:45 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
AS dodaje biblioteki z automatu, w mkclipse dodaj ręcznie: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Te dwie powiny wystarczyć |
Autor: | koczis_ws [ 20 sty 2022, o 12:34 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
Te biblioteki mam w main.c i AS to wystarczało. Dopisałem je tu ale nadal jest problem: język cpp Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Ale to nieprawda??? |
Autor: | koczis_ws [ 20 sty 2022, o 13:05 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
koczis_ws napisał(a): Błąd dotyczy dołączonej biblioteki programowego UART do Tiny 13. Misiek_86 napisał(a): coś takiego Składnia: [ Pobierz ] [ Ukryj ] język c int main(void) nie może być. |
Autor: | koczis_ws [ 20 sty 2022, o 13:59 ] |
Tytuł: | Re: Import z AVRStudio5 do MkCLIPSE |
Uruchamianie samej biblioteki nie ma sensu. Trzeba napisać jakiś program główny (main.c). Zaraz przetestuję z nowym projektem. ....... Przetestowałem i jest OK czyli trzeba szukać w programie głównym, ale nie znalazłem tam nic O co chodzi z tym: main.c:(.text.uart_rx+0x0): multiple definition of `uart_rx' W programie main.c nie ma wogóle definicji, są tylko wywołania funkcji. Po dodaniu do testowego programu wywyłania funkcji uar_rx błąd pojawia sie taki sam jak poprzednio. |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |