DoxyGen - Dokumentieren von if-Abfragen

Hero_123

Mitglied
17 Sep 2010
163
3
18
Sprachen
  1. ANSI C
Hallo!
Ich möchte mit DoxyGen (1.8.14) mein doch etwas umfangreicheres Projekt dokumentieren und habe da ein Problem:

1.) im *.h-file steht: "
C:
#define ARRAY_LEN 22        /**< Arraylaenge der per SPI ausgetauschten Daten */
" => dies wird korrekt dokumentiert
2.) im *.h-file steht: "
C:
#if!(ARRAY_LEN > 10)
#error "ARRAY_LEN falsch - zu klein"
#endif
3.h im *.h-file steht:
C:
#if defined(__AVR_ATmega8__)
#if((0x400) <= (RAMEND - 0x060))
#error "Size larger than SRAM"
#endif
#define EXT_INT_FLA MCUCR
#define EXT_INT_ACT GICR

#define TI_IR_FL TIFR
#define TI_OV_FL TOV0

#elif  defined(__AVR_ATmega168__) || defined(__AVR_ATmega168A__)|| \
defined(__AVR_ATmega168P__)|| defined(__AVR_ATmega168PA__) || \
defined(__AVR_ATmega168PB__) || defined(__AVR_ATmega328__) || defined(__AVR_ATmega328P__)
#define EXT_INT_FLA EICRA
#define EXT_INT_ACT EIMSK

#define TI_IR_FL TIFR0
#define TI_OV_FL TOV0
#define TI_IR_FL1 TIFR1
#define TI_OV_FL1 TOV1
#define TI_IR_FL2 TIFR2
#define TI_OV_FL2 TOV2

#endif

dies wird (leider) nicht dokumentiert (hätte es aber gerne).
So wie ich es sehe, wird das unter 2.) und 3.) geschilderte nicht dokumentiert, da die if-Bedingungen nicht erfüllt sind (klar, da ARRAY_LEN 22 ist usw) - gibt es eine Einstellung bei DoxyGen, wo man das auch dokumentiert bekommt? Speziell das unter 3.) aufgeführte wäre mir schon wichtig, wenn's in DoxyGen dokumentiert wäre ;)

Vielen Dank!

mfg Hero_123
 

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3,462
64
48
Marwitz
Sprachen
  1. BascomAVR
  2. Assembler
Die Dokumentation betrifft diese speziellen Kommentare.

Die Dokumentation wird erst beim erfolgreichen kompilieren erzeugt, oder?

Bei 2. und 3. wirfst Du aber Fehler (#error), die Kompilierung wird also abgebrochen. Schon mal mit'ner Warnung stattdessen versucht?
 

Dirk

Administrator
Teammitglied
28 Jan 2007
4,319
158
63
Mittelhessen, Giessen
Sprachen
  1. ANSI C
  2. C++
  3. C#
  4. Java
  5. Kotlin
  6. Pascal
  7. Assembler
  8. PHP

Hero_123

Mitglied
17 Sep 2010
163
3
18
Sprachen
  1. ANSI C
Hallo LotadaC

Vielen Dank für Deine Antwort

2.) und 3.) - da hast Du recht, da soll (und wird) eine Fehlermeldung erzeugt und die Kompilierung abgebrochen - ist gewollt, da falsche ARRAY_LEN oder RAM-Bereich des ATMega8 überschritten wurde (=> Fehler vom User).
Ich möchte eben gerne, dass diese Fehlermeldungen auch in der Dokumentation erscheinen ...

mfg

Hero_123
 

Hero_123

Mitglied
17 Sep 2010
163
3
18
Sprachen
  1. ANSI C
Hallo Dirk

Vielen Dank für Deine Hilfe

Ich habe bei den Preprocessor -Einstellungen alle möglichen Kombinationen ausprobiert - es hat nicht so geklappt wie gewünscht.

Bei 2.) könnte ich die Meldung mittels Kommentar so modifizieren, dass zumindest auf einen Fehler hingewiesen wird, wenn die ARRAY_LEN falsch ist:

C:
#define ARRAY_LEN 22        /**< Arraylaenge der per SPI ausgetauschten Daten - Fehler wenn
ARRAY_LEN < 10 oder > 22 - Kompilierung wird abgebrochen */

aber 3.), wo die Auswahl zwischen ATMega8 und ATMega168 / ATMega328 ist, habe ich keine passable Lösung - hätte es aber schon gerne in der per DoxyGen erzeugten Dokumentation gesehen :unknw:

Wie auch immer ...

mfg

Hero_123
 

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3,462
64
48
Marwitz
Sprachen
  1. BascomAVR
  2. Assembler
Mal'ne Zwischenfrage (die nichts mit Deinem Problem zu tun hat): Warum berechnest Du die SRAM-Größe? Und warum als Differenz einer Konstante (aus der Definitionsdatei) und einer Zahl?

Zumindest die Definitionsdateien für ASM legen neben RAMEND (beim Mega8 0x045F) auch SRAM_START (Deine 0x0060) und sogar SRAM_SIZE (beim Mega8 1024) an...

P.S. @Dirk : Bin ich irgendwie zu blöd, die Inline-Code-Tags zu finden? (hab jetzt einfach 'n "i" dazugeschummelt... aber das gab's doch mal im Menu... oder werd ich langsam alt??
 

Hero_123

Mitglied
17 Sep 2010
163
3
18
Sprachen
  1. ANSI C
Hallo LotadaC

Berechnung der SRAM-Größe - das habe ich im Internet irgendwann gesehen und wollte damit nur checken, was passiert, wenn die Größe nicht stimmt - also zumindest im Moment ohne großen Einfluss.

mfg

Hero_123
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)