我正在使用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我想找到链接器文件,这样我才能更好地理解地址是如何分配的。我知道我可以看看数据表,看看它是什么,但我想知道链接器是如何找到它的。
发布于 2013-09-14 06:18:47
它们在文件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。
https://stackoverflow.com/questions/18798879
复制相似问题