Forum: Mikrocontroller und Digitale Elektronik C => Preprocessor #if TYP0== STRING funktioniert nicht


von Jörg B. (jbernau)


Lesenswert?

Hallo zusammen,

ich finde den Fehler nicht:
1
/usr/local/bin/ba-elf-gcc -D*JENNIC_CHIP_FAMILY=JN516x* -DJENNIC_CHIP_NAME=_JN5168 -DZLL_NUMBER_DEVICES=1 -DZLL_NUMBER_OF_ENDPOINTS=1 -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/ZPSAPL/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/ZCL/Clusters/OTA/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/ZCL/Clusters/LightLink/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/ZCL/Profiles/ZLL/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/ZCL/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/ZPSTSV/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/ZPSNWK/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/ZPSMAC/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/Utilities/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/TimerServer/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/Random/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/PWRM/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/PDM/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/PDUM/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/OS/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/MAC/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/HardwareAPI/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/DBG/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/Aes/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/AppApi/Include -I/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/HardwareApi/Include -I"/home/BERNAU/joerg/Eagle/Projekte/LED Boards/ZigbeeLightLink-WS2812B/Firmware/lib/Common" -I"/home/BERNAU/joerg/Eagle/Projekte/LED Boards/ZigbeeLightLink-WS2812B/Firmware/lib/Coordinator" -isystem /usr/local/lib/jn516x-sdk/JN-SW-4168/Components/Common/Include  -Wno-attributes -g   -o CMakeFiles/ZLL.dir/app_zcl_light_task.c.o   -c "/home/BERNAU/joerg/Eagle/Projekte/LED Boards/ZigbeeLightLink-WS2812B/Firmware/lib/app_zcl_light_task.c"

###########
1
In file included from /home/BERNAU/joerg/Eagle/Projekte/LED Boards/ZigbeeLightLink-WS2812B/Firmware/lib/app_zcl_light_task.c:48:0:
2
/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/PWRM/Include/pwrm.h:135:13: Fehler: In Konflikt stehende Typen für »PWRM_vSetupDozeMonitor«
3
/usr/local/lib/jn516x-sdk/JN-SW-4168/Components/PWRM/Include/pwrm.h:127:13: Anmerkung: Vorherige Deklaration von »PWRM_vSetupDozeMonitor« war hier


###########
pwrm.h:
1
/****************************************************************************/
2
/***        Exported Functions                                            ***/
3
/****************************************************************************/
4
5
// Zeile 127
6
#if defined(JENNIC_CHIP_FAMILY) && JENNIC_CHIP_FAMILY == JN514x
7
   * PUBLIC void PWRM_vSetupDozeMonitor(bool_t bUseIO, bool_t bUseTimers, bool_t b32uSec); *
8
   PUBLIC void PWRM_vResetDozeTimers(void);
9
   PUBLIC uint32 PWRM_u32GetDozeTime(void);
10
   PUBLIC uint32 PWRM_u32GetDozeElapsedTime(void);
11
#endif
12
13
// Zeile 135
14
#if defined(JENNIC_CHIP_FAMILY) && JENNIC_CHIP_FAMILY == JN516x
15
   // lpsw3603: No timers on a '68, only IO
16
  * PUBLIC void PWRM_vSetupDozeMonitor(bool_t bUseIO); *
17
#endif
###########


Vielleicht habe ich schon das zu oft gelesen, um den Fehler zu finden 
...


Vielen Dank für Eure Hilfe!

Joerg

: Bearbeitet durch User
von Ntldr -. (ntldr)


Lesenswert?

Wie hast du JN516x bzw. JN514x definiert? Wenn die beiden identisch 
sind, ist natürlich auch das Ergebnis der beiden #if's identisch.

von Jörg B. (jbernau)


Lesenswert?

Hallo,

wie schon ohen geschrieben: /usr/local/bin/ba-elf-gcc 
-DJENNIC_CHIP_FAMILY=JN516x

Danke Jörg

: Bearbeitet durch User
von Dr. Sommer (Gast)


Lesenswert?

Und wie ist JN516x definiert? Wenn JN516x und JN514x beide als "1" 
definiert sind, sind sie gleich und beide #if werden ausgewertet...

von Jörg B. (jbernau)


Lesenswert?

Dr. Sommer schrieb:
> Und wie ist JN516x definiert? Wenn JN516x und JN514x beide als "1"
> definiert sind, sind sie gleich und beide #if werden ausgewertet...


Ich lese das als String-Vergleich, aber vielleicht kann ich mich auch 
irren...

von (prx) A. K. (prx)


Lesenswert?

String-Vergleich gibts nicht. In #if werden unbekannte Namen einfach als 
Wert  0 angenommen.

von Jörg B. (jbernau)


Lesenswert?

Ok, danke, das wars. NXP definiert in seinem Makefile

CFLAGS += -DJN516x=5160

VG

Jörg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.