【发布时间】:2012-06-12 12:11:23
【问题描述】:
据我们所知,我们编写 Embedded C 编程,用于 task management, memory management, ISR, File system 等等。
我想知道是否有一些task or process is running 和interrupt occurred,然后是how SW or process or system comes to know that, the interrupt has occurred? 和pauses 当前的task execution 和starts serving ISR。
假设我会写下面的代码:
// Dummy Code
void main()
{
for(;;)
printf("\n forever");
}
// Dummy code for ISR for understanding
void ISR()
{
printf("\n Interrupt occurred");
}
在上面的代码中,如果一个external interrupt(ISR) occurs,那么main()如何知道中断发生了?所以它会首先开始服务于 ISR?
【问题讨论】:
-
Main() 应该返回 int。从信号处理程序或中断处理程序调用 printf() 是不安全的。
-
阅读您的系统文档,这些文档很可能不在 stackoverflow.com 上
-
@wildplasser No main 不应该不返回 int,这不是 PC。该帖子被明确标记为嵌入式系统。阅读this。
-
@Lundin:我刚刚写了一个虚拟代码。这不是真的
标签: c embedded scheduled-tasks interrupt