ARM软件程序设计
ARM系统的中断处理流程如图1所示。系统中主要有定时器中断、串口输入中断、串口输出中断、接口中断、链路中断5种中断。
图1 申断处理流程图
其中:
·定时器中断模块主要是为操作系统提供时钟基准。
·串口输入和输出中断模块主要给用户提供接口,方便程序的下载与调试。
·接口中断模块负责每2ms与总线上其他板卡通信一次。
·链路中断模块也是每隔一段时间处理一次链路的数据,它的任务最重。
因此,应该将链路中断模块设置成∏Q快速中断方式,其他模块都设成IRQ普通中断方式。
2. 中断程序设计
正确、恰当地使用中断程序可以使嵌入式系统应用运行得更有效率,下面给出ARM中断测试的部分汇编源程序。测试程序开启T】定时器中断进行测试,通过中断服务程序使与PD0连接的LED指示灯闪亮。
(1)中断服务程序
3. 中断处理程序优化
将中断处理尽可能搬到内部RAM或SDRAM中,以前的中断处理函数代码放在Flash中,数据放在SDRAM中,Flash速度远慢于SDRAM,这是限制中断处理速度的一大瓶颈。现在可以通过改变编译配置,将所有的中断处理函数都复制到ARM内部RAM或者SDRAM中。一股情况下,内部RAM速度要快于外部的SDRAM,因此,可以修改以下编译配置文件。
如表所示是改编译环境前后的中断处理速度的对比,可是看出在SDRAM中代码的执行速度比在Flash中大约快4倍。
表 中断处理速度优化前后对比
评论