Witam!
Lubię gdy mój kod nie ma żadnych warningów, po instalacji nowego kompilatora xc-16 wyrywam sobie włosy z głowy
Przy nowym kompilatorze dostaję taki komunikat:
#ifndef DEVICE_ID
# define DEVICE_ID 0x00
#endif
//warning: '_FUID0' definition has been deprecated: consider migrating to #pragma config
_FUID0(DEVICE_ID);
OK, więc po zastosowaniu nowego zapisu, otrzymuję:
#ifndef DEVICE_ID
# define DEVICE_ID 0x00
#endif
//error: unknown value for configuration setting 'UID0': 'DEVICE_ID'
#pragma config UID0 = DEVICE_ID
Jak się domyślam, pragma config interpretuje to co się wpisuje a nie wartość, ponieważ kod poniżej jest OK
#pragma config UID0 = 0
Powoli kompilator zmusza mnie, abym w Makefile'ach dodał "grep -v" żeby komunikat o warningu się nie wyświetlał.
Nie mogę na sztywno przypisać wartości ponieważ "DEVICE_ID" jest generowany przy kompilacji.
Jak to napisać, żeby było bez warningów/errorów?
Nie wiem czy pragma config jest jeszcze gdzieś wykorzystywana, ale może ktoś z Was wie jak sobie z tym poradzić.
Objaśnienie:
xc-16 kompilator Microchipa, do mikrokontrolerów.
_FUID0/UID0 jest to bajt w pamięci FLASH, gdzie swobodnie można sobie coś pisać.