私はこのコード部分を理解できず、誰かが私に何が起こっているのか説明できますか?関数名がuint32_tにキャスト
私は2つの機能を持って:
void timer_irq_handler(void) {
....
}
void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) {
....
}
はその後、私はこのようなものだ:
NVIC_SetVector(TIM_MST_IRQ, (uint32_t)timer_irq_handler);
を私は(のuint32_t)に、ボイド機能をキャストするために理解していない
関数ポインタ( 'void(*)(void)'型)を'uint32_t'、おそらくそれをいくつかの割り込みベクタに格納します。 –
すぐに応答していただきありがとうございます。このキャスティングの結果は何ですか?このポインタのアドレスですか? – Wodji
システムが64ビットシステムの場合は、まったく致命的です。 32ビットシステムでは、ポインタは数字として転送されます - 特に良い方法ではありませんが、おそらくはうまくいくでしょう。コードは 'uintptr_t'を使うべきです。 'sizeof(void *)== sizeof(void(*)(void))'というマシンで動作します。 –