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



Teraz jest 18 cze 2026, o 17:09


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 11 sty 2014, o 16:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2011
Posty: 108
Pomógł: 0

Jakiś czas temu zrobiłem sterownik oparty na stosie TCPIP z Bluebooka. Dzisiaj coś tam w nim zmieniłem i przy kompilacji zonk

../ip_arp_udp_tcp.c:457:1: error: unknown type name 'prog_char'

Na stronie tuxgraphics znalazłem, że żeby zachować kompatybilność kodu z nowym toolchainem trzeba w pliku
Makefile dodać linię:

CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues -Wno-deprecated-declarations -D__PROG_TYPES_COMPAT__

Pytanie, gdzie w Eclipsie mogę dokonać tej modyfikacji ? Boje się grzebać "na pałę" , żeby uniknąć kłopotów.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2014, o 16:58 
Offline
Moderator
Avatar użytkownika

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

a co za problem zmienić sobie to na

const char zmienna PROGMEM;

???

http://mirekk36.blogspot.com/2012/08/ec ... zytaj.html

i mieć problem z głowy - zamiast sobie wyłączać w makefile i przez to w końcu kiedyś mieć już takiego ZONKA że włosy sobie powyrywasz zanim dojdziesz co jest nie halo :(

_________________
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: 11 sty 2014, o 17:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2011
Posty: 108
Pomógł: 0

Próbowałem wcześniej, ale chyba coś do mnie nie dociera:

linię:

Kod:
uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s)


zamieniłem na:

Kod:
uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const char *progmem_s PROGMEM)


i dostaje warrning:

../ip_arp_udp_tcp.c:457:1: warning: '__progmem__' attribute ignored [-Wattributes]

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2014, o 17:10 
Offline
Moderator
Avatar użytkownika

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

toż ja mówiłem o DEFINICJI zmiennej a nie o argumencie funkcji, jeśli argument funkcji to wystarczy const char

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

_________________
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: 11 sty 2014, o 17:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2011
Posty: 108
Pomógł: 0

Ok, a jak Const zastosować do funkcji:

Kod:
void (*parse_fun[ILOSC_KOMEND]) (char *buf) PROGMEM = {
      send_temp,
};


bo przy kompilacji wyskakuje:

../main.c:86:8: error: variable 'parse_fun' must be const in order to be put into read-only section by means of '__attribute__((progmem))'

a przecież parse_fun nie jest zmienną.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2014, o 18:04 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

ixxl napisał(a):
CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues -Wno-deprecated-declarations -D__PROG_TYPES_COMPAT__Pytanie, gdzie w Eclipsie mogę dokonać tej modyfikacji ? Boje się grzebać "na pałę" , żeby uniknąć kłopotów.


Piszę z głowy czyli "z niczego" więc może coś pomylę ale ustawia się to jakoś tak:
Project/Preferences/C/C++/Settings gdzieś tam będzie zakładka czy coś o nazwie Symbols, dodajesz nowy symbol i tam to wpisujesz ale bez początkowego -D, czyli tylko __PROG_TYPES_COMPAT__

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2014, o 20:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2011
Posty: 108
Pomógł: 0

Po zmianie i tak utkwilem na problemie z poprzedniego postu :(

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sty 2014, o 19:44 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

ixxl napisał(a):
a przecież parse_fun nie jest zmienną

Dziwnie to wygląda :mrgreen:
Tak może dopytam co to jest send_temp czy nie czasem nazwą funkcji wtedy coś takiego się nadaje:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sty 2014, o 22:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2011
Posty: 108
Pomógł: 0

Powiem ci, ze sie poddalem. W kompilacji w nowym toolchainie nie dość, ze pojawiło się sporo warningów, to po adaptacji kodu, przestała mi działać komunikacja SPI. Stojąc przed wyborem instalacja starego toolchaina 30s czy adaptacja i sprawdzenie kodu pod kątem nowego X godz. wybrałem pierwszą opcje i to była decyzja na miarę szóstki w totka :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lip 2014, o 18:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 16 lut 2014
Posty: 96
Lokalizacja: Łódź
Pomógł: 6

Że tak spytam przy okazji tego tematu... (coby kolejnego nie zakładać)

prog_char X jest po prostu odpowiednikiem const char X PROGMEM
a na przykład
prog_uint16_t Y odpowiednikiem const uint16_t Y PROGMEM ?


czy coś podobnego jest z EEMEM?



-- --

Kiedy zedytuję coś według powyższego schematu dostaję warninga dotyczącego zmiennej powołanej do życia wewnątrz funkcji...

Warning 1 '__progmem__' attribute ignored [-Wattributes]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lip 2014, o 20:34 
Offline
Moderator
Avatar użytkownika

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

przeczytaj to dokładnie:

http://mirekk36.blogspot.com/2012/08/ec ... zytaj.html

_________________
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: 11 ] 

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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO