我正在使用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
我想找到链接器文件,以便更好地了解地址的分配方式。我知道我可以查看数据表以查看它是什么,但我想知道链接器是如何找到它的。
答案 0 :(得分: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
。