1

我正在使用 MSPGCC 来编译和链接我的程序。我想看看如何在链接器命令文件中分配硬件地址。在我的设备的头文件中,我发现了以下几行:

/* External references resolved by a device-specific linker command file */
#define SFR_8BIT(address)   extern volatile unsigned char address
#define SFR_16BIT(address)  extern volatile unsigned int address

在文件的后面,我在 GPIO 部分找到了这样的行:

SFR_8BIT(P1IN);                               /* Port 1 Input */
SFR_8BIT(P1OUT);                              /* Port 1 Output */
SFR_8BIT(P1DIR);                              /* Port 1 Direction */
SFR_8BIT(P1IFG);                              /* Port 1 Interrupt Flag */

我想看看 P1IN 是如何定义的。我试图更好地了解它是什么,以便我可以使用它。

我意识到它可以这样使用:

P1OUT &= 0xF7; // clear bit 3

我想找到链接器文件,以便更好地了解地址是如何分配的。我知道我可以查看数据表以了解它是什么,但我想知道链接器是如何找到它的。

4

1 回答 1

4

它们在文件中定义msp430g2553.cmd

/************************************************************
* DIGITAL I/O Port1/2 Pull up / Pull down Resistors
************************************************************/
P1IN               = 0x0020;
P1OUT              = 0x0021;
...

PS:我正在使用CCS。path\to\ccs\ccs_base\msp430\include该文件与头文件一起位于msp430g2553.h

于 2013-09-14T06:18:47.170 回答