中断是指当前正在执行的程序被打断,转而执行另一个程序的一种机制。为了实现中断机制,计算机需要有中断向量表来存放中断处理程序的入口地址。在ARM Cortex-M系列中,中断向量表的首地址被保存在存储器的第0个位置处,其余位置存放各个中断处理程序的入口地址。
IAR是一款常用的集成开发环境(IDE),在工程生成过程中,会将程序中所用的中断处理程序复制到中断向量表中。为什么要这样做呢?
如果中断响应速度不够快,可能会导致系统出现各种问题。为了提高中断响应效率,IAR将用到的中断处理程序复制到中断向量表中,并将中断向量表放置在存储器的最开始位置,这样可以将中断响应的时间降到最短。
在程序优化的过程中,程序可能会被分成多个文件,中断处理程序也可能被分开编写。如果中断处理程序和向量表不在一个文件中,对向量表做出修改后,需要重新生成整个程序才能使修改生效,这样会增加程序的编译时间。而如果将中断处理程序和向量表都放在同一个文件中,就可以避免这种情况的发生。