Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 3 sty 2025, o 09:15


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
Autor Wiadomość
PostNapisane: 15 wrz 2012, o 01:01 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27324
Lokalizacja: Szczecin
Pomógł: 1041

Zapraszam do krótkiego artykułu poświęconego instrukcji jak dołączać biblioteki *.a w Eclipse ;)

Obrazek

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2012, o 10:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

niestety mirku ten sposób może i dodaje bibliotekę , ale ... hmmm trochę dziwne kombinacje a program i tak się nie kompiluje tak więc jest dalej coś mocno nie tak.

na odstrzał poszedł program testowy Hello Graphic

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


próba kompilacji kończy się komunikatem :
passing argument 1 of 'GFXSetFont' from incompatible pointer type [enabled by default]

Ja się na razie poddałem bo straciłem wenę w tej sprawie.
Coś jest nie tak po prostu i na zdrowy rozum ktoś to specjalnie zamotał czy co :) w sumie
chyba nie będę używał już tej biblioteki do niczego choć jest świetna a w projektach
powstałych z jej użyciem chyba już nie będę potrzebował nic mieszać , niemniej zawsze bez bólu
i kombinowania mogę to zrobić w AS.

------------------------ [ Dodano po: 34 minutach ]

udało mi się doprowadzić do kompilacji w/w programu po licznych kombinacjach w plikach .h
biblioteki... niemniej są warningi . Osobiście uważam to za porażkę w Eclipse :)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2012, o 10:58 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27324
Lokalizacja: Szczecin
Pomógł: 1041

Sun, zobacz poniżej jak mi przebiegła kompilacja

Obrazek

żadnego błędu

Obrazek

------------------------ [ Dodano po: 42 minutach ]

SunRiver napisał(a):
Osobiście uważam to za porażkę w Eclipse :)


Nie nie - ja doczytałem się, że właśnie jak się kompiluje biblioteki *.z to niestety taka jest zasada, że później linker sam dokłada sobie to 'lib' na początku oraz '.a' na końcu..... Więc to jest kwestia linkera a nie Eclipse .... tyle tylko że w AVR Studio nie trzeba robić tej sztuczki czyli można podać całą nazwę a ono samo podmienia przekazując luz do kompilacji

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2012, o 11:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

u mnie pojawiają się 3 warningi spróbuję jeszcze raz wywalić wszystko i zrobić od początku
niemniej się już kompiluje a to na plus

wrzuciłem wszystko od nowa...
czyli biblioteki na świeżo pobrane
na nowym projekcie

i po kompilacji w/w programu przykładowego

Obrazek

no można nerwy stracić

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2012, o 11:10 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27324
Lokalizacja: Szczecin
Pomógł: 1041

A jakie masz warningi ? sprawdź poza tym na starym toolchainie bo na nowym u mnie nie chce rozpoznawać typu

prog_uint8_t

nie wiem dlaczego zresztą ? i to jest jedyny kłopot na razie jak próbuję tgeo GFX'a kompilować nowym toolchainem

ale jak dam starego toolchaina WinAVR to jak widzisz - ani jednego warninga, ani jednego błędu - od razu wszystko śmiga

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2012, o 11:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

No właśnie widzisz w AS6 mam tego samego toolchaina co w eclipse czyli ATmelowski 3.4.1.1xxx
na AS idzie bez zająknięcia , natomiast w eclipse ... masz wyżej

------------------------ [ Dodano po: dzisiaj, o 11:18 ]

po dodaniu w pliku types.h wiersza:

Kod:
typedef prog_uint8_t;


oraz zmianie w pliku Arial.12.h

wiersza : static uint8_t Arial12[] PROGMEM = {
na : const uint8_t Arial12[] PROGMEM = {

program się kompiluje , ale z warningami :

Obrazek

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2012, o 11:20 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27324
Lokalizacja: Szczecin
Pomógł: 1041

Ale widzisz na starym toolchainie pięknie się kompiluje możesz sprawdzić, za to co do tego błędu

prog_uint8_t

to tego jeszcze nie mogę rozgryźć ale będę szukał - na początku myślałem że wywalili taką możliwość zapisu, bo w którymś moim starym projekcie też użyłem np

prog_char

i też atmelowski toolchain mi zakrzyczał pod Eclipse - no to myślę sobie , OOO! wywalili to i pewnie będzie można zrobić już tylko tak:

char PROGMEM

więc tak napisałem i wszystko pod atmelowskim toolchainem poszło. Więc dalej sprawy nie badałem bo myślałem że tak trzeba teraz. Tymczasem zaskakujesz mnie że pod AS6 to się kompiluje .... hmmmm no to znowu będę miał ciężki orzech do zgryzienia ;) muszę to rozwikłać - jak widzisz na blogu opisuję sporo rzeczy takich różnic - po to żeby samemu mieć też zawsze gdzie zajrzeć do informacji w takich przypadkach .... a zatem będę walczył z tym prog_uint8_t w atmelowskim toolchainie skoro ma działać ;) Chyba że też AS6 sobie gdzieś w trakcie kompilacji samo zamienia go na uint8_t PROGMEM :(

poza tym jak sam widzisz takie biblioteki *.a bywają kocie - bo nie masz wpływu na to co jest w środku skompilowane i nie możesz podmienić. Gdyby były takie typowe źródłowe biblioteki ;) to by się weszło i ciachnęło wszędzie ten typ tak jak piszę i wszystko by ruszyło

------------------------ [ Dodano po: dzisiaj, o 11:18 ]

SunRiver napisał(a):
po dodaniu w pliku types.h wiersza:

Kod:
typedef prog_uint8_t;


oraz zmianie w pliku Arial.12.h

wiersza : static uint8_t Arial12[] PROGMEM = {
na : const uint8_t Arial12[] PROGMEM = {

program się kompiluje , ale z warningami :

Obrazek


No tak - bo jak mówię wewnątrz biblioteki *.a już nie możesz zmienić nic - a tam jeszcze pewnie są typy, które teraz się nie zgadzają formalnie i stąd warningi

kurczę co te AS odpiernicza za sztuczkę że działa ten przedrostek prog_

no będę dzisiaj wieczorem albo w nocy znowu miał co kurna robić - teraz znowu mi zalazło to za skórę. Musimy mieć Eclipse które tak samo działa jak AS6 z nowym toolchainem ;) ..... sam zobacz ile już się udało zrobić ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2012, o 11:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

dobra

w pliku types.h

dodany wiersz musi mieć postać : typedef int prog_uint8_t;
a w pliku font.h powinno być tak:

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


w tej chwili pozostaje kwestia 1 warninga:

passing argument 1 of 'GFXSetFont' from incompatible pointer type [enabled by default] main.c line 20 C/C++ Problem

oraz 1 Info:

expected 'const prog_uint8_t *' but argument is of type 'const uint8_t *' line 26, external location: C:\ProGFX\include\font.h C/C++ Problem


Normalnie masakra ....

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2012, o 12:05 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27324
Lokalizacja: Szczecin
Pomógł: 1041

Sun ;) hahaha ale numer - już mam dla ciebie gotowe rozwiązanie ;) tylko że nie mam tego LCD pod ręką więc nie mam jak sprawdzić jak działa po kompilacji ale już nie ma ANI JEDNEGO warninga w nowym toolchainie ;)

co trzeba zrobić ;) ..... w ogóle wypieprzyć ten przedrostek prog_ bo np mamy taką definicję w font.h

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


a co to ma kurna być ??? ;) wskaźnik const to wskaźnik po cholerę ktoś tu próbował dawać to prog_ a nawet PROGMEM jest niepotrzebne bo wskaźnik to wskaźnik więc zmień to na:

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


ale to samo zrób w deklaracjach wszystkich funkcji niżej w tym pliku, czyli:

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


dalej, plik: Arial12.h

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


trzeba tylko dodać const

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


i nie potrzeba nigdzie dodawać tego co wcześniej zrobiłeś

typedef prog_uint8_t;

------------------------ [ Dodano po: dzisiaj, o 11:18 ]

sprawdź ok? ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2012, o 12:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

no dobra robota Mirku w sumie faktycznie namotane było ... przykładowy programik ma zero errorów i działa na LCD
teraz podstawka biblioteki do właściwego programu gdzie użyte zostały funkcje graficzne i:

no kompiluje się i działa , ale warningów w 3 diabły

------------------------ [ Dodano po: dzisiaj, o 11:18 ]

no dobra zamiast walczyć z dużym projektem ~4500 linii kodu (działającego bez problemu z AS6)
wziąłem na tapetę mniejszy programik używający biblioteki libgfx.a

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


jest ok na ekranie mamy śliczny prostokąt , ale irytujący warning jest :


return type of 'main' is not 'int' [-Wmain] main2.c


------------------------ [ Dodano po: dzisiaj, o 11:18 ]

dobra nie wiem czemu takie wywołanie funkcji jak void main(){} jest nie prawidłowe w eclipse
ale zmiana na int main(void) załatwia problem

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2012, o 13:28 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27324
Lokalizacja: Szczecin
Pomógł: 1041

SunRiver napisał(a):

dobra nie wiem czemu takie wywołanie funkcji jak void main(){} jest nie prawidłowe w eclipse
ale zmiana na int main(void) załatwia problem


No ale tak jest od początku świata i języka C, że MUSI być int jako rezultat dla main() ;)

Ja nigdy w życiu nie pisałem

void main(void) { }

co wydaje się naturalne - bo przecież gdzie ma być zwracany ten rezultat ? :) skoro nie ma tu systemu operacyjnego żadnego ;)

No ale zgodność ze standardem wymusza ten typ int - i dlatego ja zawsze go wpisuję i nigdy nawet takiego warninga nie zauważyłem

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2012, o 14:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

nie no oczywiście ja się zgadzam ,ale jak widzisz w oryginalnym zapisie było tak i jak najbardziej
działa to w AS:)
ale zostawmy as bo chyba niewiele ma wspólnego ze standardem

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2012, o 15:40 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27324
Lokalizacja: Szczecin
Pomógł: 1041

zenowi --> ale zauważ że my tu rozważamy dość daleko idące jakieś tam zaawansowane rozwiązania których na co dzień się zwykle nie używa - ja przyznam ci się że do dzisiaj jeszcze nie skorzystałem z żadnych bibliotek

*.a

poza systemowymi ;)

więc wcale nie jest tak strasznie ;) jak ci się wydaje i jak mówię - wpadnij do mnie kiedyś przy kawce albo piwku na Skype ze słuchawkami i mikrofonem to zobaczysz co ci pokażę ;) ..... wiem wiem zwykle wiele osób jakoś się obawia takiego bezpośredniego kontaktu - tymczasem ci którzy skorzystali to szybko udało się pokonać pierwsze niezrozumiałe kroki i dzisiaj pięknie śmigają już sami w C ... bo najgorzej jest się na czymś zaciąć - sam wiem jak to jest - widzisz pewnie mój temat o zmaganiach młodego linuxowca na forum ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2012, o 15:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

Po prostu czasem trzeba użyć czegoś co zwykle się omija i jak widzisz bywa problematyczne z początku,
ale nie rzutuje to na c, które samo w sobie jest dosyć elastyczne, i pozwala na to czy tamto :)

ot po prostu lepiej wiedzieć więcej niż nie wiedzieć nic .. prawda

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO