linux中断编程.pdfVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北京万邦易嵌科技有限公司 Linux 中断编程 2017 年2 月9 日星期四 编 制:北京万邦易嵌科技有限公司-嵌入式研发部肖龙 版 本:V2.0 编制日期:2016 年1 月10 日 修改日期:2017 年1 月10 日 版权声明:该培训教程版权归北京万邦易嵌科技有限公司所有,未经公司授权禁止引用、发 布、转载等,否则将追究其法律责任。 Linux 中断编程 一、中断相关概念 为什么会有中断。 假设你有一个朋友来拜访你,但是由于不知道何时到达,你只能在大门等待,于是什么事情也干不了。如果 在门口装一个门铃,你就不必在门口等待而去干其它的工作,朋友来了按门铃通知你,你这时才中断你的工作去 开门,这样就避免等待和浪费时间。计算机也是一样,例如打印输出,CPU 传送数据的速度高,而打印机打印 的速度低,如果不采用中断技术,CPU 将经常处于等待状态,效率极低。而采用了中断方式,CPU 可以进行其 它的工作,只在打印机缓冲区中的当前内容打印完毕发出中断请求之后,才予以响应,暂时中断当前工作转去执 行向缓冲区传送数据,传送完成后又返回执行原来的程序。这样就大大地提高了计算机系统的效率。 1.1、裸机中断编写模型 裸机中断模板: void isr_xxxx(void) { 清中断标志 } 第一种应用 : void isr_xxxx(void) { 清中断标志 发生中断要做全部事情都在这里写 } 这种形式好处,可以一次把事情做完,不受其他中断影响。 缺点:如果这里的代码比较耗时,这样会导致系统的实时性下降。 在中断程序如果发生优先级比它低中断,则不能及时处理。 北京万邦易嵌有限公司 专业提供单片机、M3/M4 、Linux、Android 、QT 技术服务、技术培训。 第 1 页 共 14 页 北京万邦易嵌科技有限公司 一、中断相关概念 2017 年2 月9 日星期四 这种形式一般用在需要执行代码耗时很短的情况。 第二种应用: int flag = 0; void isr_xxxx(void) { 清中断标志 flag = 1; //只做一个记录,主体放在主程序中。 } 仅做一个记录,然后主程序根据标志执行中断相关的代码。 这种方式适合发生时要做的事情比较多,比较耗时。 配合主程序: int main(void) { while(1) { // 以下代码可以被中断,不会影响系统的实时性。随时可以让CPU 切出去,随机响应中断 if(flag) { flag = 0; 发生中断时候要做事情在这里写; } } } 以上的写法相信大家在学习M3 的时候都有用过。 Linux 下的中断也存在裸机一样的两种形态,根据自己的情况编写。 1.2、中断顶半部和中断底半部 Linux 系统把第二种形式的两部分分别称为中断顶半部和中断底半部。 中断顶半部: 响应中断,启动底半部(作用相当于裸机设置标志 )。 一般用来做响应以及耗时短的,比较紧急的事件;

文档评论(0)

150****0049 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档