2

NXPLPC1788などのARMCortex-M3で、なぜ誰かが割り込みセット保留レジスタまたは割り込みクリア保留レジスタを使用するのでしょうか。

誰かがこれらのレジスタを使用する簡単で標準的な例を提供できますか?

4

1 に答える 1

3

私が考えることができる唯一のユースケースは、GPIO割り込みハンドラーのように、優先度の高いIRQHandlerから優先度の低いソフトウェアの抽出をトリガーすることです。

通常はそのためにPendSVを使用しますが、複数のタスクまたは優先度レベルがある場合は、未使用の周辺例外ベクトルを使用できます。Sleep-on-Exit機能を使用するプログラムで役立つ可能性があります-µCは例外ハンドラーでのみ実行されます。

// Example for LPC17xx
void   ETHERNET_Handler (void)
{
    // toggle LED on P0.4
    LPC_GPIO0->FIODIR0 ^= (1<<4);
}

void main(void) 
{
    // set Ethernet IRQ to loewst Priority
    NVIC_SetPriority(ENET_IRQn,31);
    NVIC_EnableIRQ(ENET_IRQn);
    NVIC_SetPendingIRQ(ENET_IRQn); // trigger Ethernet IRQ Handler
    // ...
    while (1);

}
于 2012-08-02T12:10:45.567 に答える