1
main
で宣言されている変数を、クラスのプライベート変数にコンストラクタの引数として渡さずに取得しようとしています。割り込みインスタンスを初期化して上書きすることなく、複数のハードウェア割り込みに割り込みコントローラをリンクする必要があります。外部変数をプライベートクラス変数にインポートする
XScuGic InterruptInstance;
int main()
{
// Initialize interrupt by looking up config and initializing with that config
ConfigPtr = XScuGic_LookupConfig(INTERRUPT_DEVICE_ID);
XScuGic_CfgInitialize(&InterruptInstance, ConfigPtr, ConfigPtr->BaseAddr);
Foo foo;
foo.initializeSpi(deviceID,slaveMask);
return 0;
}
クラスfooの実装:
class Foo
{
// This should be linked to the one in the main
XScuGic InterruptInstance;
public:
// In here, the interrupt is linked to the SPI device
void initializeSpi(uint16_t deviceID, uint32_t slaveMask);
};
のdeviceIDとslaveMaskが含まれるヘッダで定義されています。
これを実現する方法はありますか?
ですから、 'XScuGic'の2つのインスタンスを持っています。 1つのグローバル変数と1つは 'Foo'のプライベートメンバーですか?コピーをプライベートメンバーに入れたいですか?あなたはプライベートリファレンスメンバーを持つことができます。 – wally
あなたのクラスに 'refference'や' pointer'を保存しなかったのはなぜですか? –
@flatmouseはい、明示的に渡すことなく、同じ割り込みインスタンスを自分のクラスで使用できるようにします – Etruscian