用户ISR安装
用户自己开发的中断程序要能够得到正确调用,必须在系统初始化时候调用中断安装函数,_int_install_isr,将用户ISR安装到中断向量表,中断安装函数的参数有三个,中断向量号,中断服务例程入口地址,中断服务例程的参数。当需要响应一个中断时候,会通过_int_install_isr,转向执行用户的ISR。该函数位于内核源码包内的kernel文件夹下的int.c文件中,这个函数比较重要,可以参考飞思卡尔MQX参考手册仔细分析源码。
内核ISR函数
内核ISR函数采用汇编语言实现,该函数位于dispatch.S文件中,dispatch.S位于MQX安装源码包下的psp文件夹下的cortex_m文件夹下的core文件夹中的M4文件夹里,如下图路径显示.
C:FreescaleFreescale_MQX_4_2mqxsourcepspcortex_mcoreM4
内核ISR的汇编代码,可参考ARM指令集分析源码,函数源码比较长,相信大家也不愿意看冗长的汇编源码,这里就不赘述了,这个函数要大体理解整个流程,内核是如何处理中断的。MQX的中断系统还是比一般的裸机中断系统要复杂一些,需要好好消化。我们这里只是简单引导下大家,这部分的内容还需要自己下功夫去理解。