【问题标题】:Doxygen list undeclared functionsDoxygen 列出未声明的函数
【发布时间】:2020-02-12 18:47:25
【问题描述】:

我想用 Doxygen 记录汇编代码,我的想法是用 \fn 定义汇编函数。但是 Doxygen 不会列出这些函数,因为它找不到声明。

我找到了这个线程Doxygen: Force undeclared functions to be documented,但我不能声明 C-Function,因为如果我这样做,我的汇编程序将不会汇编我的文件。有没有办法强制 Doxygen 列出用 \fn 记录的函数,尽管它们没有声明?

示例代码:

/*
 * \fn void pinSetup(int pin)
 *
 * \param pin   pin number
 */
pinSetup:
    mov r1, r0
    ...

【问题讨论】:

  • 请记住,程序集没有功能,只有标签。
  • 我知道。我的意图是调用这些标签并处理它们类似的功能。我们的团队希望将它们记录为函数,函数参数由寄存器和堆栈传递
  • 如果您预处理您的程序集文件,您链接的问题的答案应该可以工作,例如。使用gcc -c filename.Sgcc -c -x assembler-with-cpp filename.s 或者如果您不使用GNU 汇编器语法gcc -E -x c filename.asm > filename.i && asm filename.i 其中asm 是您正在使用的汇编器的名称。好吧,这是假设 Doxygen 可以解析随机插入到一堆汇编语句中间的 C 声明。

标签: assembly doxygen


【解决方案1】:

一个技巧是向 doxygen 公开比编译器更多的“代码”。

例如,定义一个虚拟定义,在使用 doxygen 构建时始终为 true:

PREDEFINED = IN_DOXYGEN

在一些 C 代码中,添加这样的伪函数:

#ifdef IN_DOXYGEN
/**
  Doc for pinSetup.
  @param pin   pin number
*/
void pinSetup(int pin) { /* Implemented in asm */ }
#endif /* IN_DOXYGEN */

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    相关资源
    最近更新 更多