优化缩短关中断的时间
文章目录
- 1 优化缩短关中断的时间
- 1.1 提取耗时操作
- 1.2 划分为多次开关中断
1 优化缩短关中断的时间
无论是开关全局中断还是关指定中断,都会对中断的响应时间造成影响。关中断的时间越长,中断被延迟响应的时间也越长,所以在编写代码时,要尽可能地保护关中断的时间要尽可能地短。但是有时会发现,任务或低优先级中断访问资源的时间较长,此时我们需要调整代码,缩短关中断时间。
1.1 提取耗时操作
这种思路简而言之是:调整代码,优化访问资源的时间,将部分耗时的操作从原操作中提取出来。
在之间的示例中,可以看到有个链表遍历。如果单就链表遍历本身来看,其速度还是比较快的,但是由于遍历过程中有使用xprintf打印,如果考虑打印是通过串口输出,那么整个遍历过程将会比较耗时。当结点数量很多,串口的波特率较低时,其耗时就更长。
在这种情况下,如果采用关中断的方式,将会导致中断长时间的关闭,产生很大的影响。通过调整代码,我们可以将打印这个耗时操作给提取出来,不在链表遍历过程中执行。这样链表遍历过程就可以快速地执行完毕,从而尽快地让中断执行。
1.2 划分为多次开关中断
有时我们会对大块的代码进行开关中断保护,代码块越大,往往执行时间也越多。
但如果对这些大块代码分析可能会发现,并不是所有的代码都涉及到对共享资源的访问。所以有时可以将这些大块代码进行"划分",将原本对整个大块代码进行开关中断保护,分隔为多块保护。这样就相比之前就允许中断尽可能早的响应。
参考资料:
- 手把手教你学用嵌入式操作系统
优化缩短关中断的时间相关推荐
- sql优化的方法及思路_合理的sql优化思路--如何缩短SQL调优时间?
概述 当生产环境发生故障或者系统特别慢的时候,这时候你从awr报告拿到有问题的sql,但是优化的时候却优化了很久还没解决,这时候在领导或者客户面前就不太好了...那么我们怎么去缩短sql调优的时间,一 ...
- 汇编cli(Clear Interrupt,禁止中断、关中断,对应的sti是开中断)
CLI禁止中断发生,关中断 STI允许中断发生,开中断 这两个指令只能在内核模式下执行,不可以在用户模式下执行:而且在内核模式下执行时,应该尽可能快的恢复中断,因为CLI会禁用硬件中断,若长时间禁止中 ...
- linux 关中断 调度,关中断是否禁止任务调度?关中断能作为互斥吗?
正 文 关中断是否禁止任务调度?关中断能作为互斥吗?(2008/11/25 21:36) 今天再看<嵌入式软件系统教程>((美)西蒙 著,陈向群 等译) ,里面讲到关中断会关了任务调度, ...
- 关中断是否禁止任务调度?关中断能作为互斥吗?
本文引自链接http://www.52rd.com/Blog/Detail_RD.Blog_imjacob_16830.html?WebShieldDRSessionVerify=COR6tnpfsO ...
- 原子操作 临界区 关中断
信号量 临界区 关中断 共享内存 什么是临界区 临界资源 1.临界资源 临界资源是一次仅允许一个进程使用的共享资源.各进程采取互斥的方式,实现共享的资源称作临界资源.属于临界资源的硬件有,打印机,磁带 ...
- 关于中断处理程序中的关中断函数disable_irq和disable_irq_nosync
2010年7月20日19:18:30 关于中断处理程序中的关中断函数disable_irq和disable_irq_nosync disable_irq关闭中断并等待中断处理完后返回, 而disabl ...
- Bochs调试Linux内核初级入门2、bochs调试断点和单步指令、0x7c00、关中断和开中断指令
前文见此: https://blog.csdn.net/bcbobo21cn/article/details/105314444 修改run.bat为:"C:\Program Files ( ...
- 使用关中断解决资源冲突问题
文章目录 1 使用关中断解决资源冲突问题 1 使用关中断解决资源冲突问题 解决方法如下: 注意事项: 适用于嵌套中断间共享资源: 在开启了中断嵌套后,可能发生嵌套中断访问同一共享资源.此时,也可以使用 ...
- 关中断解决任务间资源共享问题
文章目录 1 关中断解决任务间资源共享问题 1.1 工作原理 1.2 任务访问流程 1.3 需要注意的地方 1 关中断解决任务间资源共享问题 1.1 工作原理 实例:关中断为tinyOS的影响 1.2 ...
最新文章
- MyEclipse10整合Axis2插件
- c++删除容器中的奇数
- Android应用程序的组成部分和Manifest文件(转)
- HDU-不容易系列之(3)—— LELE的RPG难题
- DotFuscator使用步骤
- POJ分层练习题目列表
- 不要在作死的边缘试探(最后那个英雄手势挺好玩儿的)
- 华为管理学案例分析_华为案例分析——管理学作业.ppt
- excel冻结窗口怎么设置_excel冻结多行怎么设置-和冻结首行一样哦
- OCR识别技术之—车牌识别
- Could not establish connection to...
- 计算机网络与互联网(三)
- 河南星年华计算机科技有限公司怎么样,莫让年华逝流水
- 上万元游戏拼多多7块搞定 PICO防不住
- pycharm连接数据库步骤
- PHP快速入门(一)
- 双击放大图片 手指移动图片位置
- html5/Css3 网页设计 带音乐与食品模块
- 360n4手机可以装linux,360手机N4 root教程_360手机N4获取root权限的方法
- 【蓝桥杯】考前押题--并查集
热门文章
- 【UWB】Savitzky Golay filter SG滤波器原理讲解
- 【Python】爬虫学习
- P3 Simulink仿真-《Matlab/Simulink与控制系统仿真》程序指令总结
- PyTorch 实现经典模型7:YOLO (v1, v2, v3, v4)
- 1.7 对新序列采样-深度学习第五课《序列模型》-Stanford吴恩达教授
- 1.6 三维卷积-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
- 3.8 神经网络解决逻辑运算问题-机器学习笔记-斯坦福吴恩达教授
- Ardino基础教程 24_RGB全彩LED
- 【任务脚本】0616吐槽tb坑爹活动,预测看好jd活动,更新汇总战绩,DIY净水器预告...
- 我的网盘(云存储)功能需求,免费网盘需求,争取早日和百度网盘说拜拜