Doxygen: Makro-Definitionen

OP #5954335
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
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
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
    /** @} */
OP
So richtig glücklich bin ich mit der Dokumentation von Makros immer noch 
nicht. Insbesondere was Pinouts angeht.

Gibt es irgendwo ein Beispiel, wo man sich die Dokumentation des Pinouts 
eines mittelmäßig kleinen Mikrocontroller-Projekt mal abgucken kann?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.