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これには変数が無視されて文書化されないという欠点があります。

__xdata __at () char Programmeddoxygen に を関数ではなく変数として認識させる方法を知っている人はいますか?

4

1 に答える 1

2

私の戦略は、doxygen マクロを使用して doxygen からコンパイラの魔法を隠す (空として定義する) ことです (未テスト; 遊んでみてください):

PREDEFINED = __xdata= \
             __at()=

のドキュメントも参照してくださいEXPAND_AS_DEFINED

PS: あなたの OS は実際にvoid-returning main を許可していますか? そうでない場合は、を使用する必要がありますint main(void)

于 2013-11-13T09:28:25.333 に答える