mikrocontroller.net

Forum: PC-Programmierung Doxygen: Makro-Definitionen


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.
Autor: Walter T. (nicolas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

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

So sieht es momentan undoxydiert aus:
    /* Buffers:
     *
     * TEXTBUFFERSIZE_BYTES: Hilfspuffer fuer Textstrings
     * AUX_BUFFERSIZE_BYTES: Hilfspuffer fuer lokale Puffer mit MALLOC
     * MAX_BLOCK_NBYTES: Maximaler Speicherblock fuer LCD-Zwecke (z.B. Bitmaps im RAM)
     */
    #if defined( STM32F10x )
        #define MAX_BLOCK_NBYTES 2048
        #define AUX_BUFFERSIZE_BYTES 2048
        #define TEXTBUFFERSIZE_BYTES 100

    #elif defined( STM32F4XX )
        #define MAX_BLOCK_NBYTES 32768
        #define AUX_BUFFERSIZE_BYTES 8192
        #define TEXTBUFFERSIZE_BYTES 100

    #else
        /* Am PC-Prototypen Puffer vorsorglich eng einstellen, um Ueberlaufeffekte sichtbar zu
           machen */
        #define MAX_BLOCK_NBYTES 2048
        #define AUX_BUFFERSIZE_BYTES 2048
        #define TEXTBUFFERSIZE_BYTES 100

    #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?

: Bearbeitet durch User
Autor: DPA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab keine besonders gute Lösung, aber vielleicht reicht es ja.
#if defined( STM32F10x )
  #define T_MAX_BLOCK_NBYTES 2048
  #define T_AUX_BUFFERSIZE_BYTES 2048
  #define T_TEXTBUFFERSIZE_BYTES 100
#elif defined( STM32F4XX )
  #define T_MAX_BLOCK_NBYTES 32768
  #define T_AUX_BUFFERSIZE_BYTES 8192
  #define T_TEXTBUFFERSIZE_BYTES 100
#else
  /* Am PC-Prototypen Puffer vorsorglich eng einstellen, um Ueberlaufeffekte sichtbar zu machen */
  #define T_MAX_BLOCK_NBYTES 2048
  #define T_AUX_BUFFERSIZE_BYTES 2048
  #define T_TEXTBUFFERSIZE_BYTES 100
#endif

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

Autor: Walter T. (nicolas)
Datum:

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

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

        /** Hilfspuffer fuer lokale Puffer mit MALLOC */
        #define AUX_BUFFERSIZE_BYTES

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

    #elif defined( STM32F10x )
        #define MAX_BLOCK_NBYTES 2048
        #define AUX_BUFFERSIZE_BYTES 2048
        #define TEXTBUFFERSIZE_BYTES 100

    #elif defined( STM32F4XX )
        #define MAX_BLOCK_NBYTES 32768
        #define AUX_BUFFERSIZE_BYTES 8192
        #define TEXTBUFFERSIZE_BYTES 100

    #else
        /* Am PC-Prototypen Puffer vorsorglich eng einstellen, um Ueberlaufeffekte sichtbar zu
           machen */
        #define MAX_BLOCK_NBYTES 2048
        #define AUX_BUFFERSIZE_BYTES 2048
        #define TEXTBUFFERSIZE_BYTES 100

    #endif
    /** @} */

Autor: Walter T. (nicolas)
Datum:

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

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.

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