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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Jörg B. (jbernau)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


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

von Jörg B. (jbernau)


Bewertung
0 lesenswert
nicht lesenswert
Ok, danke, das wars. NXP definiert in seinem Makefile

CFLAGS += -DJN516x=5160

VG

Jörg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.