ucos中的中断管理
2024-10-09 15:15:26
一.中断的概念
中断是一种硬件机制,用于处理异步事件。中断的实时性比轮询要好,通过中断,微控制器可以在异常发生的时候立刻进行处理,而不需要不断轮询事件是否发生。
CM3支持中断嵌套,使得高优先级异常可以打断低优先级的异常。
二.中断服务程序中的数据处理
1.裸机中的中断处理
1)对于中断请求较少的程序来说,直接在中断中进行数据处理是一种简洁的方式(参见正点原子的教学例程)。
2)在实际的工程应用中,中断资源比较宝贵,通常做法是在中断中打一个标记,在主循环中轮询此标志位,发现置位标记后,马上清空,开始做读数据,处理等一系列操作。应避免在ISR中处理复杂数据,让中断能够快速处理完毕。
3)DMA,我好像都没有用过这个功能(后期在讨论)
2.ucos中断服务程序
看起来很简单,与裸机相比只增加了两行代码:
OSIntEnter(); //通知UCOS进入中断处理
/*中断服务程序*/
OSIntExit(); //退出中断处理
这两个函数暂时不去关注他的实现。
3.多中断优先级的处理器
处理器的中断优先级别永远高于系统任务的优先级别。
对于CM3内核的芯片来说,有三个不可编程的优先级,系统内核无法参与。
最新文章
- mysql导入导出sql文件
- 重载运算符:类成员函数or友元函数
- 关于移动端1px边框问题
- Invalid escape sequence(valid ones are \b \t \n \f \r \"; \' \\)
- Dynamic CRM 2013学习笔记(三十七)自定义审批流7 - 初始化(整套审批流下载、安装)
- Spring事务配置的五种方式(转)
- MySQL的多实例
- Svn与Git的区别
- windows XP 安装pip
- [算法题] Two Sum
- 【xsy2140】计数
- MyBatis源码解析(二)——Environment环境
- Big Endian  和 Little Endian 模式的区别
- char 类型的操作函数
- spring播放器详细设计说明书(一)
- Sqlserver Sequence操作
- java网络基础知识的简述
- linux 负载均衡配置 keepalive lvs 使用nginx转发 CentOS7 搭建LVS+keepalived负载均衡
- BZOJ1061 [Noi2008]志愿者招募 【单纯形】
- 洛谷 P3698 [CQOI2017]小Q的棋盘 解题报告
热门文章
- Kong(V1.0.2) Health Checks and Circuit Breakers Reference
- Kong(V1.0.2)loadbalancing
- 一个故事带你理解if __name__ == '__main__'
- C:指针遍历二维数组
- wireshark过滤器
- webapi自定义Filter
- pandas学习笔记(一)
- C# winform三种方法判断文本框textBox内容是否为空
- 一些最常见的SNMP的OID自动翻译成zabbix数字进行表示(华为9306)
- fdisk 分区及 swap