gpt4 book ai didi

中断挂起的 ARM Cortex-M3 示例

转载 作者:行者123 更新时间:2023-12-04 05:39:30 24 4
gpt4 key购买 nike

对于 ARM Cortex-M3,例如 NXP LPC1788,为什么有人会使用中断设置挂起寄存器或中断清除挂起寄存器?

有人可以提供一个使用这些寄存器的简单、规范的例子吗?

最佳答案

我能想到的唯一用例是从高优先级 IRQHandler 触发低优先级软件 excaption - 就像 GPIO 中断处理程序。

通常您会为此使用 PendSV,但是当您有多个任务或优先级时,您可以使用任何未使用的外围异常向量。在使用退出时 sleep 功能的程序中可能很有用 - 其中 µ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);

}

关于中断挂起的 ARM Cortex-M3 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11444513/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com