Я хочу использовать doxygen для моих проектов микроконтроллеров с avr-gcc.
Doxygen работает нормально, как и ожидалось, но у меня проблема с переменными.Использование doxygen с типами переменных avr-gcc
В avr-gcc используются специальные типы переменных, которые не распознаются doxygen. Как и в этом примере:
static uint8_t timeout; ///< timeout counter
static uint16_t bootcount; ///< boot counter
volatile uint8_t seconds; ///< system time seconds
volatile uint8_t minutes; ///< system time minutes
uint32_t EE_lifetime EEMEM = 0; ///< overall time in use
uint8_t EE_dummy EEMEM = 0xFF; ///< http://www.atmel.com/webdoc/AVRLibcReferenceManual/FAQ_1faq_eeprom_corruption.html
Когда я бегу Doxygen только летучие переменные перечислены правильно, все остальные глобальные переменные игнорируются.
Переменные в EEPROM полностью перепутаны, поскольку в обзоре указана только первая переменная, а остальная часть отсутствует.
В подробном представлении указывается только EE_dummy, но с комментариями всех переменных EEPROM.
типов переменных определены в /usr/lib/avr/include/stdint.h
http://www.nongnu.org/avr-libc/user-manual/group__avr__stdint.html
В Doxyfile настройка должна быть правильной:
SEARCH_INCLUDES = YES
ENABLE_PREPROCESSING = YES
я не мог узнать, что неправильно или отсутствует?
Некоторое время назад был аналогичный вопрос, на который не ответил.
https://stackoverflow.com/questions/34796928/doxygen-uint8-t-and-other-stdint-h-inttypes-h-integer-types
Что касается статических переменных, проверьте настройки EXTRACT_STATIC (я предполагаю, что вы видите статические переменные как глобальные, как вы показать их во фрагменте кода) – albert
Что касается uint32t и uint8_t переменной видит «uint32_t EE_lifetime» и «uint8_t EE_dummy «как тип переменной EEMEM, в результате чего одна переменная объединяет их документацию (и игнорирует второй тип). – albert
Спасибо, albert - EXTRACT_STATIC установлено значение NO. Именно по этой причине эти переменные не документированы. С EXTRACT_STATIC = YES они указаны правильно. Я предположил, что doxygen извлекает глобальные переменные sensitiv по контексту - это было непонятно для меня. Но проблема с переменными типа EEMEM по-прежнему существует. Я попытался определить эти переменные дополнительно как статические - это принято компилятором, но они все еще указаны неправильно. – Karsten