关于中断

关于中断


近段时间在做与一个有网络的嵌入式操作系统的开发。这个系统用的是最单线程,网络部分是用的lwip。因为要对网络部分进行二次开发,于是对lwip调用mac和fifo这一部分进行了比较深入的了解。发现中断真的很有趣也很重要,如果拿人来比较中断就相于人的耳朵和眼睛了。它从外界收集信息然后通知大脑,让大脑去处理。


关于中断,除了本身做为一个信号可以直接与CPU相连之外,我们都知道每个中断都有其对应的中断响应函数。


经过分析lwip的网络部分程序设计流程大概是这样的。


1 init_lwip();我们统称为初始化吧,把网卡及相关的外设进行设置。


2 注册中断,允许中断。在注册中断主要是指定中断的响应函数,将中断对对应的响应函数进行绑定。


3 while(1)
{
   根据实际情况需要发送数据则发送数据
}进入无限循环....


那么一旦程序进入循环,接收数据则完全是靠中断来处理的。当然这里面还要涉及到怎么设计缓存,也就是接收到的包要缓存起来,以供其它模块使用。


所以在程序设计中,特别是一些单线程的情况下,有些需求是很难达到的,但是如果利用中断的特性,一些问题就很容易解决,因为利用中断这种思想与顺序执行有很大的区别。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值