电脑开机执行完第一条指令后,电脑能响应中断吗?
Can the computer respond to the interrupt after the first instruction is executed after the computer is turned on?
我们知道在执行周期完成时,会进行测试以确定是否发生了任何已启用的中断.如果已启用中断发生,则 中断周期 发生。那么电脑开机后执行完第一条指令后能不能响应中断呢?
是的,这是可能的;如果不太可能,也许不是在所有架构上。
例如,在 ARM Cortex-M 上,向量的开始 table 包括执行起始地址和初始堆栈指针 - 这些被加载到程序计数器 (PC) 和堆栈指针(SP) 在启动时注册并在 PC 上开始执行。此时 NVIC 不会被初始化,中断也不会被启用,但是 不可屏蔽中断 (NMI) 或处理器 异常 发生,将调用向量 table.
中指定的任何处理程序
要调用异常句柄,您的“第一条指令”本身必须无效。而且,如果您这么早就发生了 NMI;您的系统可能已损坏或设计不当。在任何情况下,NMI 的出现通常表示处理器外部存在一些严重错误。
我们知道在执行周期完成时,会进行测试以确定是否发生了任何已启用的中断.如果已启用中断发生,则 中断周期 发生。那么电脑开机后执行完第一条指令后能不能响应中断呢?
是的,这是可能的;如果不太可能,也许不是在所有架构上。
例如,在 ARM Cortex-M 上,向量的开始 table 包括执行起始地址和初始堆栈指针 - 这些被加载到程序计数器 (PC) 和堆栈指针(SP) 在启动时注册并在 PC 上开始执行。此时 NVIC 不会被初始化,中断也不会被启用,但是 不可屏蔽中断 (NMI) 或处理器 异常 发生,将调用向量 table.
中指定的任何处理程序要调用异常句柄,您的“第一条指令”本身必须无效。而且,如果您这么早就发生了 NMI;您的系统可能已损坏或设计不当。在任何情况下,NMI 的出现通常表示处理器外部存在一些严重错误。