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.
Obrazek

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:
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  Marhef [ 8 gru 2021, o 18:16 ]
Tytuł:  Re: Import z AVRStudio5 do MkCLIPSE

koczis_ws napisał(a):
Poniżej zrzut.
Obrazek

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 19:36 ]
Tytuł:  Re: Import z AVRStudio5 do MkCLIPSE

Nie mam nawet jak sprawdzić bo teraz przy próbie uruchomienia mkclips pojawia się taki kwiatek :(
Obrazek

Tłumacz Google napisał 'O Cheng Dao ' cokolwiek to znaczy.

------------------------ [ Dodano po: 11 minutach ]

Odznaczyłem "warning as error" i dalej nic.
Kompilacja:
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=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""
main.c: In function 'dht11_getdata':
main.c:79:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^

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
----------------
WARNING --> main.c --> Line: 79

Ech, zraziłem się :(

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:
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć 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ła


Problem 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.
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

A błąd jest taki:
Składnia: [ Pobierz ] [ Ukryj ]
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:
Składnia: [ Pobierz ] [ Ukryj ]
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:
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

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.
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/