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



Teraz jest 29 mar 2024, o 00:58


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 26 ] 
Autor Wiadomość
PostNapisane: 21 kwi 2020, o 12:20 
Offline
Użytkownik

Dołączył(a): 13 mar 2013
Posty: 123
Pomógł: 1

Witam
natrafiłem na pewną zagwozdkę której niestety nie potrafię przejść - związaną ze sposobem tworzenia plików przez kompilator
Srodowisko: Eclipse 2019_12
Program: L21_UART_ASCII_AT autorstwa Mirka z GB (GreenBook, nie Great Britain)
Działanie : Dodanie nowego pliku pilota nec.c i nec.h do katalogu IR_UNI

Ponieważ posiadam trochę innego pilota niż występujące w oryginalnym projekcie, więc musiałem stworzyć odpowiednie pliki. Tworzenie ich polegało na przeróbce oryginalnego pliku Mirka dotyczącego SONY SIRCS. Plik został przerobiony i sprawdzony w projekcie Mirka L01_odbiornik_SIRCS (po niezbędnych , kosmetycznych zmianach). Wszystko działało znakomicie, przeróbka była udana.

1.Dołączyłem nowe pliki oznaczone ir_nec.h i ir_nec.c do istniejących już w katalogu IR_UNI-
ir_jvc.h,ir_jvc.c,ir_rc5.h,ir_rc5.c,ir_samsung_h,ir_samsung_c,ir_sony.h oraz ir_sony_c.
2.W pliku ir_config dodałem dwa wpisy:
a. #define NEC 4 oraz niżej
b. # include "ir_nec.h"
Czyli reasumując dodałem pliki lub stosowny wpis we wszystkich miejscach gdzie występowały pliki
pozostałych ilotów lub ich nazwy.

Problem: Przy kompilacji projektu, w konsoli mogę znalaleźć zapis kolejnych działań kompilatora -
'Building file: ../MK_USART/mkuart.c'
'Building file: ../LCD/lcd44780.c'
'Building file: ../IR_UNI/ir_jvc.c'
'Building file: ../IR_UNI/ir_rc5.c'
'Building file: ../IR_UNI/ir_samsung.c'
'Building file: ../IR_UNI/ir_sony.c'
'Building file: ../komendy_at.c'
'Building file: ../main.c'
i to tyle w sprawie tworzenia plików, później idą targety itd. Jak widać kompilator całkowicie ignoruje mój IR_UNI/ir_nec.c. Jeśli wybieram któryś z pilotów oryginalnie przewidzianych przez Mirka, projekt kompiluje się prawidłowo i wszystko jest OK. Jeśli jednak wybiorę swój plik pilota, to kompilacja zgłasza błędy wynikające z braku referencji , i projekt nie kompiluje się z uwagą:
"make all" terminated with exit code 2. Build might be incomplete.
Dwa pytania:
1. Od czego zależy lista tworzonych plików *.c ?
2. Od czego zależy kolejność tworzenia tych plików ?
Będę zobowiązany za wszelkie wskazówki.
Pozdrawiam
W



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 kwi 2020, o 13:15 
Offline
Moderator
Avatar użytkownika

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

No weź nie mów, że nie oglądałeś tego poradnika:



------------------------ [ Dodano po: 2 minutach ]

Oczywiście kompilator to jedno - a Eclipse samo dodaje WSZYSTKIE pliki *.C które tworzysz w projekcie do kompilacji czyli kompilatorowi na pożarcie

_________________
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: 21 kwi 2020, o 18:52 
Offline
Użytkownik

Dołączył(a): 13 mar 2013
Posty: 123
Pomógł: 1

Tak, oczywiście oglądałem poradnik "Jak działa kompilator" i pozwolił mi swojego czasu wyjaśnić sobie wiele wątpliwości. Tym niemniej nie zawiera on odpowiedzi na moje pytania. Może niezbyt jasno wyłożyłem problem , sróbuję więc przybliżyć temat:

Biorę gotowy, sprawdzony ,kompilujący się projekt.
Do tego projektu dodaję swój dodatkowy zestaw w postaci pliku nagłówkowego nec.h i odpowiadającego mu
pliku źródłowego nec.c
W oryginalnym projekcie w odpowiednich miejscach dodaję wpisy #include nec.h wskazujące ,że dochodzi jeszcze jeden komplet plików

Niestety w trakcie kompilacji projektu są przetwarzane wszystkie oryginalne pliki *.c , poza tym dodanym przeze mnie.

Dlaczego kompilator go pomija?
Byłem pewien , że jeśli dodane są wpisy #include w odpowiednich miejscach , to powinno to być informacją dla kompilatora aby takie pliki przetworzył.

Domyślam się ,że należy tu kierować się podpowiedzią Mirka ,że to Eclise samo dodaje wszystkie pliki *.c do kompilacji.
Faktycznie , jak spojrzeć na konsolę , to proces zaczyna się od tworzenia plików C - 'Building file: ../MK_USART/mkuart.c' i tak dalej.
A więc trochę inne pytanie - skąd Eclipse wie które pliki *.c dodać do kompilacji i dlaczego ignoruje te nowo dodane?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 kwi 2020, o 20:11 
Offline
Moderator
Avatar użytkownika

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

jak to pomija ? co ty piszesz ;) ... każdy plik *.c który sam dodaje to Eclipse dodaje do kompilacji - poprzez zresztą automatycznie tworzony plik makefile. I UWGA! nie ma to nic a nic wspólnego z twoimi #include ....

każdy plik *.c jest kompilowany chyba że świadomie wyłączysz go z kompilacji za pomocą opcji EXCLUDE FROM BUILD

_________________
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: 21 kwi 2020, o 20:19 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Musisz dodać plik do Eclipsa (wskazać mu).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 kwi 2020, o 20:36 
Offline
Moderator
Avatar użytkownika

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

micky napisał(a):
Musisz dodać plik do Eclipsa (wskazać mu).


Ale przecież nic nie trzeba dodawać w Eclipse ;) Jeśli się stworzy plik *.C gdzieś w folderze czy podfolderze projektu to ECLIPSE sam go doda

_________________
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: 21 kwi 2020, o 22:49 
Offline
Użytkownik

Dołączył(a): 13 mar 2013
Posty: 123
Pomógł: 1

mirekk36 napisał(a):

Ale przecież nic nie trzeba dodawać w Eclipse ;) Jeśli się stworzy plik *.C gdzieś w folderze czy podfolderze projektu to ECLIPSE sam go doda

Przykro mi Mirku, ale wlaśnie w moim przypadku nie. O to się właśnie pytam.
Do gotowego projektu L21_UART_ASCII_AT, do katalogu IR_UNI dodaję plik *.h i plik *.c. I w trakcie kompilacji wszystkie inne pliki *.c są kompilowane, a mój dodany plik *.c jest pomijany.
Widać to z raportu kompilacji w konsoli.
Pytam ponownie - jak to możliwe?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2020, o 00:01 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Zakładam że robiłeś clean projektu?

Wysłane ze srajfona

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2020, o 00:34 
Offline
Użytkownik

Dołączył(a): 13 mar 2013
Posty: 123
Pomógł: 1

Harry napisał(a):
Zakładam że robiłeś clean projektu?

Tak , oczywiście.
Swoje pliki też dodawałem na różne sposoby - zarówno dodajac pliki jak też i tworząc nowe pliki i wklejając ich zawartość,

Zastanawia mnie też sprawa związana z drugim pytaniem - podejrzewam ,że może mieć tu kryć się jakieś wyjaśnienie.
Mianowicie jak podglądam raport kompilacji w konsoli to najpierw kompilowany jest plik
'Building file: ../MK_USART/mkuart.c'
następnie kompilowany jest
'Building file: ../LCD/lcd44780.c'
później
'Building file: ../IR_UNI/ir_jvc.c'
następnie
Building file: ../IR_UNI/ir_rc5.c'
kolejno
Building file: ../IR_UNI/ir_samsung.c'
dalej
'Building file: ../IR_UNI/ir_sony.c'
a następnie
'Building file: ../komendy_at.c'
i na końcu
'Building file: ../main.c'

Skąd taka kolejność? Pliki w drzewie projektu umieszczone są zupełnie inaczej. Od czego to zależy?
Zgodnie z tym o czym wspomniał Mirek to Eclipse zarządza kompilacją przez automatycznie tworzony plik makefile.
Więc może tu, przy tworzeniu makefile występuje jakiś problem ?

------------------------ [ Dodano po: kilkunastu sekundach ]

Harry napisał(a):
Zakładam że robiłeś clean projektu?

Tak , oczywiście.
Swoje pliki też dodawałem na różne sposoby - zarówno dodajac pliki jak też i tworząc nowe pliki i wklejając ich zawartość,

Zastanawia mnie też sprawa związana z drugim pytaniem - podejrzewam ,że może mieć tu kryć się jakieś wyjaśnienie.
Mianowicie jak podglądam raport kompilacji w konsoli to najpierw kompilowany jest plik
'Building file: ../MK_USART/mkuart.c'
następnie kompilowany jest
'Building file: ../LCD/lcd44780.c'
później
'Building file: ../IR_UNI/ir_jvc.c'
następnie
Building file: ../IR_UNI/ir_rc5.c'
kolejno
Building file: ../IR_UNI/ir_samsung.c'
dalej
'Building file: ../IR_UNI/ir_sony.c'
a następnie
'Building file: ../komendy_at.c'
i na końcu
'Building file: ../main.c'

Skąd taka kolejność? Pliki w drzewie projektu umieszczone są zupełnie inaczej. Od czego to zależy?
Zgodnie z tym o czym wspomniał Mirek to Eclipse zarządza kompilacją przez automatycznie tworzony plik makefile.
Więc może tu, przy tworzeniu makefile występuje jakiś problem ?

------------------------ [ Dodano po: 1 minucie ]

MisterWhite napisał(a):
Harry napisał(a):
Zakładam że robiłeś clean projektu?

Tak , oczywiście.
Swoje pliki też dodawałem na różne sposoby - zarówno dodajac pliki jak też i tworząc nowe pliki i wklejając ich zawartość,

Zastanawia mnie też sprawa związana z drugim pytaniem - podejrzewam ,że może mieć tu kryć się jakieś wyjaśnienie.
Mianowicie jak podglądam raport kompilacji w konsoli to najpierw kompilowany jest plik
'Building file: ../MK_USART/mkuart.c'
następnie kompilowany jest
'Building file: ../LCD/lcd44780.c'
później
'Building file: ../IR_UNI/ir_jvc.c'
następnie
Building file: ../IR_UNI/ir_rc5.c'
kolejno
Building file: ../IR_UNI/ir_samsung.c'
dalej
'Building file: ../IR_UNI/ir_sony.c'
a następnie
'Building file: ../komendy_at.c'
i na końcu
'Building file: ../main.c'

Skąd taka kolejność? Pliki w drzewie projektu umieszczone są zupełnie inaczej. Od czego to zależy?
Zgodnie z tym o czym wspomniał Mirek to Eclipse zarządza kompilacją przez automatycznie tworzony plik makefile.
Więc może tu, przy tworzeniu makefile występuje jakiś problem ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2020, o 02:44 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

A spróbuj do tego includowanego pliku wrzucić jakaś inną zawartość(może być cokolwiek, nawet mignięcie pinem). Wtedy będzie wiadomo, czy on go nie kompiluje bo jest jakiś błąd w pliku, czy go nie widzi.

Wysłane ze srajfona

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2020, o 06:24 
Offline
Moderator
Avatar użytkownika

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

MisterWhite napisał(a):
Więc może tu, przy tworzeniu makefile występuje jakiś problem ?

Nie występuje żaden problem - lepiej pokaż zrzut ekranu ze swojego Eclipsa tzn z całego drzewka projektu to wtedy będzie można podpowiedzieć gdzie robisz błąd bo niestety musisz robić jakiś okrutny błąd

------------------------ [ Dodano po: 4 minutach ]

a jak znam życie i takie ala nietypowe przypadki - że niby " Eclipse się zepsuł " ... to czuję pismo nosem że np dałeś złe rozszerzenie np *.C zamiast *.c i wtedy nie masz co nawet marzyć, że Eclipse doda do kompilacji jakiś nieznany sobie plik i nie ma co się dziwić, bo duże i małe litery mają znaczenie nie tylko w kodzie. Dlatego piszę żebyś pokazał dokładne zrzuty ekranu ze swojego Eclipsa.

_________________
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: 22 kwi 2020, o 06:30 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Mirku, może być jeszcze problem z samą biblioteką, do tego stopnia że kompilator puścił pawia ;)

Wysłane ze srajfona

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2020, o 06:33 
Offline
Moderator
Avatar użytkownika

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

Harry napisał(a):
Mirku, może być jeszcze problem z samą biblioteką, do tego stopnia że kompilator puścił pawia ;)

Wysłane ze srajfona

No tak ale wtedy jednak ślady pawia byłyby bardzo widoczne w CONSOLI po kompilacji ;) byłoby widać każdy niestrawiony kawałek groszku czy marchewki :lol:

w tym przypadku idę o zakład że chodzi o prosty czeski błąd który robi autor i pierwsze co mi przychodzi do głowy to właśnie TO co wyżej opisał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: 22 kwi 2020, o 06:34 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

A czy w takim wypadku, kompilator nie powinien zgłosić błędu że niema pliku?

Wysłane ze srajfona

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2020, o 06:47 
Offline
Moderator
Avatar użytkownika

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

Harry napisał(a):
A czy w takim wypadku, kompilator nie powinien zgłosić błędu że niema pliku?

Ależ skąd - to byłoby niestety czyste szaleństwo i np ja bym sobie nie życzył, żeby mi zgłaszał niechciane pliki ;) co więcej jeszcze raz podkreślę że kompilator niczego nie może zgłosić - bo to sam Eclipse dodaje pliki ... ale już wyjaśniam co miałem na myśli pisząc "niechciane" a przecież chciane przeze mnie pliki ;)

Jak zapewne nie raz zauważyliście, w moich projektach ja CZĘSTO - szczególnie gdy tworzę coś ważnego, komercyjnego - to dodaję do głównego folderu np pliki PDF ze schematem, żeby zawsze mieć pod ręką, jakieś pliki JPG albo PNG a nawet filmiki *.mp4 z poglądowym widokiem urządzenia itd itp

czy chciałbyś wtedy Harry, żeby za każdą kompilacją kompilator się darł, że nie mógł dołączyć takich plików ? ;) ... po to mamy rozszerzenia ... no i na koniec

KAŻDY może sobie zrobić taki prosty test

1. stwórz we własnym projekcie plik test.C
2. wpisz do niego jakieś bzdety - żeby zadziałało jak środek na wymioty dla kompilatora :lol:
3. Puść kompilację w Eclipse

i co ? Okaże się, że Eclipse w ogóle nie tknie tego czegoś co ma rozszerzenie *.C ale za to z przyjemnością zmizia wszystko co ma rozszerzenie *.c ;)


------------------------ [ Dodano po: 4 minutach ]

Zresztą podobnie zachowa się MkClipse tyle że jak spróbujesz w nim założyć nowy plik *.C to MkClipse Będzie się dzielnie bronił i sam na siłę doda jednak rozszerzenie *.c i wyjdzie ci "Test.C.c" ;) ale przynajmniej wtedy MkClipse go skompiluje. Jeśli zaś sam ręcznie zmienisz to rozszerzenie na *.C to wtedy MkClipse splunie przez lewe ramię i nie będzie miziać tego pliku TAK samo jak Eclipse ..

Przy czym ja w MkClipse w ogóle nie tworzę i nie bawię się ŻADNYM makefile - nie ma śladu po czymś takim - a zobaczcie że wszystko się zwykle pięknie kompiluje w MkClipse

_________________
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: 22 kwi 2020, o 06:56 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Chodziło mi o brak zainkludowanego pliku.

Wysłane ze srajfona

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2020, o 07:06 
Offline
Moderator
Avatar użytkownika

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

Harry napisał(a):
Chodziło mi o brak zainkludowanego pliku.

Ale to ZAWSZE zgłosi ;) i autor nie pisze tu o braku zainkludowanego pliku - bo inkludujesz panie kochany pliki *.h (przypominam) a nie *.c - więc jak może zgłosić brak ?

Oczywiście ja sobie zdaję sprawę, że wielu ludzi kojarzy to w ten sposób, że kompilator kompiluje te pliki które ja rzekomo sobie zainkluduję - że skojarzy nazwę pliku *.h z nazwą *.c ale nie ma nic bardziej mylnego ...

można sobie bowiem stworzyć

t_konfig.h
test.c

i co? rzekomo kompilator miałby po takiej nazwie pliku *.h sam się czegoś domyśleć ?

Inkludowanie plików *.h to tak jak dołączanie do *.c kawałka kodu źródłowego (paru dodatkowych linijek do pliku *.c) ... Same pliki *.h nie są przecież kompilowane bo nie mogą być kompilowane a ja mogę sobie ich natworzyć jak mrówek

zobacz np mój folder biblioteki do CAN

Obrazek

w folderze głównym same pliki *.h i tylko jeden inkludujemy w naszym main.c zaś one są też inkludowane w innych plikach biblioteki w odpowiedni sposób

_________________
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: 22 kwi 2020, o 07:13 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

No w sumie fakt, myślałem o plikach nagłówkowych, pisząc o .c, pewnie to późna pora ;)

Najlepiej będzie jak kolega MisterWhite wrzuci wszystko co wypluwa konsola, bo tak to można gdybać bez końca ;)

Wysłane ze srajfona

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2020, o 07:23 
Offline
Moderator
Avatar użytkownika

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

Harry napisał(a):
Najlepiej będzie jak kolega MisterWhite wrzuci wszystko co wypluwa konsola

No tylko z tego co mówi to konsola mu nie wypluwa tego pliku więc poza całą konsolą to jeszcze niech pokaże zrzut ekranu z całego drzewka projektu

_________________
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: 22 kwi 2020, o 07:29 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Ale może wypluwa coś innego, z pozoru nieistotnego, a jednak mającego wpływ na to co się dzieje.

Wysłane ze srajfona

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2020, o 11:12 
Offline
Moderator
Avatar użytkownika

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

Harry napisał(a):
Ale może wypluwa coś innego, z pozoru nieistotnego, a jednak mającego wpływ na to co się dzieje.

a tak - tak to oczywiście racja więc czekamy - licząc też na to że autor sobie poczyta to wszystko wyżej na początek ;)

_________________
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: 22 kwi 2020, o 11:15 
Offline
Użytkownik

Dołączył(a): 13 mar 2013
Posty: 123
Pomógł: 1

A więc załączam zrzut drzewka projektu:
Obrazek

oraz dodaję pełny plik raportu kompilacji - konsoli:

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



Projekt jak widać poza pomijaniem moich extra plików znakomicie się kompiluje i prawidłowo działa. Problem oczywiście zaczyna się gdy ustawiam opcję IR_TYP==NEC bo wtedy zgłąsza brak odpowiednich plików i wysypuje się - zgłasza wyjście z błędem kompilacji nr2.

Przypomnę tylko, gwoli ścisłości ,że pliki ir_nec.h i ir_nec.c są niewielkimi przeróbkami oyginalnych plików Mirka opracowanych dla SONY SIRCS - przeróbka zwiazana jest z tym ,że NEC ma kodowanie Space a nie Pulse , no i czasy są inne. Przerobionyplik został sprawdzony w oryginalnym programie Mirka L01_odbiornik_SIRCS i spisywał się znakomicie, tak więc na pewno nie zawiera błędów szokujących kompilator.

Nie ukrywam ,że temat stał się dla mnie już nie tylko pytaniem z cyklu "jak rozwiązać" a głównie pasjonującą zagadką z dziedziny "jak to działa"
Pozdrawiam i będę wielce zobowiązany za przybliżenie tematu
W



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2020, o 11:26 
Offline
Moderator
Avatar użytkownika

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

no to teraz zobacz czy nie masz tego pliku w EXCLUDACH z projektu ... albo spakuj cały projekt do ZIP i podeślij mi na maila biuro@atnel.pl a nie na forum to sprawdzę w 5 sekund

_________________
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: 22 kwi 2020, o 12:56 
Offline
Moderator
Avatar użytkownika

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

Proszę bardzo oto kod który się kompiluje i co więcej kompiluje się plik ir_nec.c jak na załączonym obrazku

Obrazek

------------------------ [ Dodano po: 1 minucie ]

oczywiście nie od razu i wcale nie jest winne ŻADNE ECLIPSE i proszę na drugi raz pamiętać albo na zawsze ;) że jak się ma takie problemy to zamiast podejrzewać kompilatory, Eclipsy czy nie wiadomo co - to lepiej szukać gdzie się samemu BABOLA zrobiło - a tutaj niestety ... były BABOLE i to jakie, że hej ! ;) Po ich wykastrowaniu jak widać wszystko śmiga jak ta lala ! tzn nie mam pojęcia czy kod działa - ale chodziło o kompilację nieprawdaż ? ;) i o Eclipsa

------------------------ [ Dodano po: 46 minutach ]

ok jakie były BABOLE ?

1. tragiczny ale błahy i banalny zarazem ;) aż mnie zmroziło gdy otworzyłem projekt i nie mogłem NIC zapisać w pliku ir_nec.c ;) i kilku innych .... co było powodem?

- niektóre pliki projektu miały założony atrybut "READ ONLY" - pewnie były skopiowane z CD roma albo z Pena działającego jak CD rom i nikt nie zdjął tych atrybutów w windows - więc ten problem to nawet Eclipsa nie dotyczył - a powodował, że Eclips rzeczywiście świra dostawał :lol:

2. bardziej wysublimowany i tu wyszła jeszcze nie do końca zapewne przetrawiona wiedza o preprocesorze ;) któremu to sam nakazałeś pan (wprawdzie nieumyślnie) no ale zawsze nakazałeś - i grzecznie preprocesor zadziałał ... czyli spowodował że nie miało co się kompilować - nawet pół linijki kodu

w pliku ir_nec.c dodałeś sobie radośnie coś takiego

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 jest wg ciebie to "NEC" bo preprocesor poczuł się jakby mu kto dał zapalić dżojnta i ukradł kompilatorowi kod do kompilacji ;) takiego psikusa zrobił - toż nie widziałeś że wszystko w środku się na SZARO wyświetlało ?

W greenbooku - ładnie opisałem o co chodzi z tym włączaniem plików do kompilacji - było to może nie aż tak potrzebne no ale po to jest książka aby na ciekawych przykładach robić różne przy okazji ciekawe kody - więc masz pan plik konfiguracyjny dla całej biblioteki o nazwie

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


a w nim taką sekcję poleceń dla preprocesora właśnie

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


widzisz gdzieś tutaj może słówko NEC ? bo ja nie - a jak myślisz po co są te wszystkie odnośniki do "SAMSUNG", "RC5", "JVC itd itp ??? jak mówię opisane jest to w GB szczegółowo ;)

ba! w pliku ir_nec.h również dałeś sobie

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


a jakże ;) więc nawet ten biedny plik nagłówkowy (nie mający wpływu na *.c) ale nie został NIGDZIE ale to NIGDZIE w twoim całym projekcie dołączony ... a zobacz co masz poniżej tej sekcji w pliku ir_config.h (na samym dole)

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


widzisz tu gdzieś inkluda dla nec.h ? Jak mówię - nawet gdybyś go dodał to nie załatwiłoby sprawy dlatego że w pliku ir_nec.h masz SZLABAN


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


więc cała zawartość kodu źródłowego pliku ir_nec.c jest WYPIERNICZONA przez preprocesor - więc już kompilator nie widzi ani jednej linii do kompilacji - proszę tak to wyglądało u ciebie w projekcie

Obrazek

zwróć uwagę na ten SZARY kolor tła - ECLIPSE mówi dla oka - że to wszystko co na szaro to nie będzie kompilowane - bo IR_TYP nie jest == NEC ;)

jak więc sobie poradzić ? oczywiście poczytać GB jak to jest zrobione ale ok - podpowiadam tutaj - zrobić jak się należy czyli w pliku ir_config.h poszerzyć sekcję

Obrazek

i nagle magia ;) wszystko zaczyna się kompilować - tzn nie wszystko - zrozum tą sekcją wybieramy które pliki mają się załączać jakby do kompilacji ;) bo biblioteka obsługuje tylko JEDEN typ (rodzaj) kodowania a nie wszystkie naraz

_________________
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: 22 kwi 2020, o 14:54 
Offline
Użytkownik

Dołączył(a): 13 mar 2013
Posty: 123
Pomógł: 1

Bardzo Mirku dziękuję za pomoc , zajety czasoraz wyczerpujące i dogłębne omówienie tematu.
Generalnie rzecz biorąc moim podstawowym błędem było - jak mi pokazałeś - pozostawienie atrybutów plików "tylko do odczytu". Rzeczywiście , importowałem projekt z płyty dołączonej do GB i nie przyszło i do głowy że trzeba sprawdzić coś takiego jak atrybuty. Mea Culpa.
Natomiast co do reszty masz oczywiście stuprocentowa rację - ale wyszło pewne nieporozumienie, całkowicie zresztą zawinione przeze mnie. Mianowicie ja te wszystkie zmiany o których mówiłeś wprowadziłem w projekcie - na dowód ,że nie próbuję pokazać się w lepszym świetle przytoczę fragment mojego pierwszego postu od którego zaczął się wątek:
Cytuj:
1.Dołączyłem nowe pliki oznaczone ir_nec.h i ir_nec.c do istniejących już w katalogu IR_UNI-
ir_jvc.h,ir_jvc.c,ir_rc5.h,ir_rc5.c,ir_samsung_h,ir_samsung_c,ir_sony.h oraz ir_sony_c.
2.W pliku ir_config dodałem dwa wpisy:
a. #define NEC 4 oraz niżej
b. # include "ir_nec.h"
Czyli reasumując dodałem pliki lub stosowny wpis we wszystkich miejscach gdzie występowały pliki
pozostałych ilotów lub ich nazwy.

Jednakże to był projekt UART_ASCII_AT2. I z nim miałem problem. W trakcie "walki" coś musiałem jednak gdzieś niechcący uszkodzić, bo nagle w trakcie kompilacji wersji RC5 zaczął pojawiać się błąd kompilacji. Nie chcąc już szukać co popsułem ponownie zaimportowałem do tego samego workspace Twój projekt , oznaczając go dla odróżnienia UART_ASCII_AT3. Oczywiście znów nie dotknąłem zadnych atrybutów , dodałem jedynie swoje ir_nec.h i ir_nec.c , sprawdziłem ,że jak i poprzednio nie kompiluje się mój dodany plik *.c i zapominając o ponowym wprowadzeniu poprawek do pliku ir_config.h wyslałem do biura Atnel.
Tak więc niestety wykazłem się nie tylko brakiem wiedzy ale też roztargnieniem. Jeszcze raz bardzo przepraszam za zajęty czas i jeśli to Cię choć trochę usatysfakcjonuje - czuję się bardzo zawstydzony.
Tym bardziej ,że gdy wprowadzałem wpisy do pliku ir_config.h mój W10 powiedział mi że plik jest do odczytu i spytał czy zmienić jego atrybut. Oczywiście potwierdziłem, ale nie przyszło mi do głowy aby zrobić to z pozostałymi plikami.
Sorry ....
Pozdrawiam
W



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2020, o 18:19 
Offline
Moderator
Avatar użytkownika

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

ale ani ja nie pisałem żeby kogoś zawstydzić ani nie przynosi mi to żadnej satysfakcji - cóż za pomysł. Za to uważam, że padły tu często zadawane pytania i warto w takich wątkach pewne rzeczy wyjaśnić do KOŃCA

a przede wszystkim po to żeby ludziom nie przychodziły pomysły do głowy, że np właśnie zepsuł się Eclipse i nie piszę tego z ironią - tylko no niestety część osób tak ma i niesłusznie - może na takich przykładach się nauczą odrzucać takie podejście po prostu. Bo często też dochodzi roztargnienie - a bo to mnie się takie rzeczy nie zdarzają ?

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 26 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO