1

在我当前的项目中,我正在尝试使用 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();

关于代码的注意事项:代码是为8051 微控制器的SDCC 编译器编写的。__xdata __at ()指令是一条特殊指令,因此编译器知道它必须将数据放在一个单独的内存段(称为 XDATA)中的预定位置(地址 0x0F00)。

我的问题是 doxygen 将其识别__at()为函数而不是变量,因此会覆盖该main()函数。

尽管有一些方法可以使 doxygen 忽略该__xdata __at () char Programmed语句,但它的缺点是变量被忽略,因此没有记录。

那么有没有人知道如何让 doxygen 将其识别__xdata __at () char Programmed为变量而不是函数?

4

1 回答 1

2

我的策略是使用 doxygen 宏(未经测试;玩弄)隐藏(定义为空)doxygen 的编译器魔法:

PREDEFINED = __xdata= \
             __at()=

您还可以查看EXPAND_AS_DEFINED.

PS:你的操作系统真的允许void-returning main 吗?如果没有,您应该使用int main(void).

于 2013-11-13T09:28:25.333 回答