В моем текущем проекте я пытаюсь создать документацию с помощью doxygen. Однако у меня проблема с переменной. Как-то doxygen распознает переменную как функцию.doxygen переменная распознается как функция
Код:
__xdata __at (0x0F00) volatile static unsigned char Programmed; /*!< an indicator if the board is programmed or not, during init copied from flash to xram*/
/*!
* The main loop that does all the magic
* besides the "compiler startup" _sdcc_external_startup (in HWInit.c) is called to handle some "urgent" init (disabling of the watchdog)
*/
void main(void){
unsigned short int TempUSInt;
//init the device.
Init_Device();
Примечание о коде: код написан для SDCC compiler для 8051 микроконтроллера. Директива __xdata __at()
- это специальная инструкция, поэтому компилятор знает, что она должна помещать данные в отдельный сегмент памяти (называемый XDATA) в заданном месте (адрес 0x0F00).
Мое предположение заключается в том, что doxygen распознает __at()
как функцию вместо переменной и таким образом перезаписывает функцию main()
.
Хотя есть способы сделать doxygen игнорировать заявление __xdata __at() char Programmed
, это имеет обратную сторону, что переменная игнорируется и, следовательно, не документирована.
Так есть ли кто-нибудь, кто знает, как заставить doxygen распознать __xdata __at() char Programmed
как переменную вместо функции?
Все. Спасибо за быстрый ответ. я должен упомянуть, что это также требует настройки 'ENABLE_PREPROCESSING = YES' ' MACRO_EXPANSION = YES' 'EXPAND_ONLY_PREDEF = YES' остальное может быть по умолчанию – user2986756
О возврате основной(): Я на микроконтроллере с нет ОС. Так что, если мои основные выходы у меня есть большая проблема ;-). Моя основная суть «void main (void) {while (1) {}}'. Это нормально для микроконтроллеров. – user2986756
+1 Прекрасный подход; но он заставляет те другие настройки, которые могут быть не идеальными в общем случае. Альтернативой было бы окружение только '__xdata __at (0x0F00)' преамбулы комментариями '\ cond' ...' \ endcond', предполагая, что компилятор рад сломать строку xdata. – Cheeseminer