Doxygen: Makro-Definitionen

OP #5954335
Lesenswert?

Hallo zusammen,

ich suche gerade, wie man Makro-Definitionen sinnvoll in Doxygen 
einpflegt.

So sieht es momentan undoxydiert aus:
1
    /* Buffers:
2
     *
3
     * TEXTBUFFERSIZE_BYTES: Hilfspuffer fuer Textstrings
4
     * AUX_BUFFERSIZE_BYTES: Hilfspuffer fuer lokale Puffer mit MALLOC
5
     * MAX_BLOCK_NBYTES: Maximaler Speicherblock fuer LCD-Zwecke (z.B. Bitmaps im RAM)
6
     */
7
    #if defined( STM32F10x )
8
        #define MAX_BLOCK_NBYTES 2048
9
        #define AUX_BUFFERSIZE_BYTES 2048
10
        #define TEXTBUFFERSIZE_BYTES 100
11

12
    #elif defined( STM32F4XX )
13
        #define MAX_BLOCK_NBYTES 32768
14
        #define AUX_BUFFERSIZE_BYTES 8192
15
        #define TEXTBUFFERSIZE_BYTES 100
16

17
    #else
18
        /* Am PC-Prototypen Puffer vorsorglich eng einstellen, um Ueberlaufeffekte sichtbar zu
19
           machen */
20
        #define MAX_BLOCK_NBYTES 2048
21
        #define AUX_BUFFERSIZE_BYTES 2048
22
        #define TEXTBUFFERSIZE_BYTES 100
23

24
    #endif

"Besonderheit" ist hier, dass die Beschreibung für die Makros in allen 
Fällen gleich ist, und nur die Werte unterschiedlich. Die Werte brauchen 
in der DoXu auch gar nicht aufzutauchen.

Eine Google-Suche nach den unterschiedlichen Kombinationen aus "Doxygen" 
und "Makros" schickt mich nur auf Stackoverflow im Kreis, die 
eigentliche Dokumentation schweigt sich ja zu Makros beharrlich aus.

Da ich nicht annehme, dass dieser Anwendungsfall bei den 
µC-Programmierern, die Doxygen benutzen, Seltenheit hat: Wie macht ihr 
das?
Gast #5954487
Lesenswert?

Ich hab keine besonders gute Lösung, aber vielleicht reicht es ja.
1
#if defined( STM32F10x )
2
  #define T_MAX_BLOCK_NBYTES 2048
3
  #define T_AUX_BUFFERSIZE_BYTES 2048
4
  #define T_TEXTBUFFERSIZE_BYTES 100
5
#elif defined( STM32F4XX )
6
  #define T_MAX_BLOCK_NBYTES 32768
7
  #define T_AUX_BUFFERSIZE_BYTES 8192
8
  #define T_TEXTBUFFERSIZE_BYTES 100
9
#else
10
  /* Am PC-Prototypen Puffer vorsorglich eng einstellen, um Ueberlaufeffekte sichtbar zu machen */
11
  #define T_MAX_BLOCK_NBYTES 2048
12
  #define T_AUX_BUFFERSIZE_BYTES 2048
13
  #define T_TEXTBUFFERSIZE_BYTES 100
14
#endif
15

16
#define MAX_BLOCK_NBYTES     T_MAX_BLOCK_NBYTES     //!< Hilfspuffer fuer Textstrings
17
#define AUX_BUFFERSIZE_BYTES T_AUX_BUFFERSIZE_BYTES //!< Hilfspuffer fuer lokale Puffer mit MALLOC
18
#define TEXTBUFFERSIZE_BYTES T_TEXTBUFFERSIZE_BYTES //!< Maximaler Speicherblock fuer LCD-Zwecke (z.B. Bitmaps im RAM)
OP #5954668
Lesenswert?

Rückwärts definierte Doxygen-Kommentare scheinen bei Makros ohne 
Leerzeile nicht zu funktionieren.

Ich habe es jetzt erst einmal so gelöst:
1
    /** @name Buffers
2
     *
3
     * @{ */
4
    #if defined( DOXYGEN )
5
        /** Hilfspuffer fuer Textstrings */
6
        #define TEXTBUFFERSIZE_BYTES
7

8
        /** Hilfspuffer fuer lokale Puffer mit MALLOC */
9
        #define AUX_BUFFERSIZE_BYTES
10

11
        /** Maximaler Speicherblock fuer LCD-Zwecke (z.B.\ Bitmaps im RAM) */
12
        #define MAX_BLOCK_NBYTES
13

14
    #elif defined( STM32F10x )
15
        #define MAX_BLOCK_NBYTES 2048
16
        #define AUX_BUFFERSIZE_BYTES 2048
17
        #define TEXTBUFFERSIZE_BYTES 100
18

19
    #elif defined( STM32F4XX )
20
        #define MAX_BLOCK_NBYTES 32768
21
        #define AUX_BUFFERSIZE_BYTES 8192
22
        #define TEXTBUFFERSIZE_BYTES 100
23

24
    #else
25
        /* Am PC-Prototypen Puffer vorsorglich eng einstellen, um Ueberlaufeffekte sichtbar zu
26
           machen */
27
        #define MAX_BLOCK_NBYTES 2048
28
        #define AUX_BUFFERSIZE_BYTES 2048
29
        #define TEXTBUFFERSIZE_BYTES 100
30

31
    #endif
32
    /** @} */

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren