中断处理程序的设计

在嵌入式系统的设计中,与外设交互,基本是两种模式:轮询和中断。考虑到CPU与外设之间的速度差,如果涉及到与外设通信,一般采用中断的方式:只有当外设完成了数据发送或者接收,才中断CPU,获得处理,这样可以保证CPU的处理效率最高。

与数据收发相关的中断,中断处理程序与外部程序(操作系统和应用程序)之间的数据交换方式的设计是中断处理程序设计的一个关键部分,直接影响系统的工作效率,甚至是一些偶发性故障的原因。

数据交换的主要考虑的因素有:数据完整性(保证数据不丢失)、交换的效率(尽量减少CPU的参与)、执行效率(中断处理程序的执行应尽量保证时间短)、异常数据丢弃的效率(尽可能在离入口近的位置丢弃异常数据)。其中数据完整性经常会被忽视,中断处理程序的不恰当导致的数据丢失经常会与通信干扰导致的数据丢失相混淆,从而掩盖了真正的问题。

本文主要探讨中断处理程序与外部程序之间的数据交互的方式及其优缺点。

FIFO结构缓存

这是一种最简单直观的数据交互方式,采用循环Buffer作为缓存,主要用于数据接收。其结构如下:

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值