プログラムのコンパイルとリンクに 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
アドレスがどのように割り当てられているかをよりよく理解できるように、リンカー ファイルを見つけたいと思います。データシートを見るだけでそれが何であるかを確認できることはわかっていますが、リンカーがそれをどのように見つけているか知りたいです。