ARM软件程序设计
发布时间:2008/12/26 0:00:00 访问次数:404
1. 中断处理流程
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倍。
表 中断处理速度优化前后对比
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
1. 中断处理流程
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倍。
表 中断处理速度优化前后对比
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
上一篇:ARM复位原理
上一篇:ARM中断及相关寄存器