簡體   English   中英

適用於MSP430的IAR嵌入式工作台中的MACRO符號用法

[英]MACRO symbol usage in IAR Embbeded workbench for MSP430

我試圖將宏的符號導出到模塊外部,但是編譯器退出並顯示:“錯誤[34]:可能無法重新定義”

我將用IAR匯編器編寫的程序分成幾個模塊,因為它是作為唯一的一大段代碼編寫的。 我遇到了幾個應該用作快速內聯函數的MACRO,我試圖將它們放在其相關模塊中,並在需要它們的位置將其導入為符號。 當我僅將宏的名稱/符號添加到托管它們的模塊的公共名稱時,就會出現問題:即使不導入它,編譯器也會退出並顯示“錯誤[34]:可能無法重新定義”。 如果可能的話,我寧願讓他們留下相關的模塊。 我能做到嗎? 還是我弄錯了方向?

MODULE      MY_MODULE

PUBLIC      GET_VALUE_XYZ

#include "msp430.h"
#include "defines.s43"

RSEG        CODE

GET_VALUE_XYZ   MACRO   parameter_1
        <...cut...>
        ENDM

    END 

宏不是通常意義上的函數,它們為常見的指令序列(如C中的#define宏)提供了簡寫形式。 因此,只能在可見定義的模塊中引用宏。 不能使用PUBLIC關鍵字將它們導出到其他模塊。

可以將宏定義與其余代碼分開,並將它們放在單獨的文件中,但是隨后您需要使用#include指令包括這些文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM