在 uC/OS 系统中,中断相当于一个优先级最高的任务。中断一般用于处理比较紧急的事件,

而且只做简单处理,例如标记该事件,带退出中断后再做详细处理。在使用 uC/OS系统时,

一般建议使用信号量、 消息或事件标志组等标志中断的发生,将这些内核对象发布给处理任务,处理任务再做详细处理。

1.在使用 uC/OS 系统时,中断的处理一般是先在中断服务函数中通过发布信号量、消息或事件标志组等内核对象来标志中断的发生,

等退出中断后再由相关处理任务详细处理中断。根据这些内核对象的发布大致可以分为两种情况,

一种是在中断中直接发布,另一种是退出中断后再发布,也就是中断延迟发布。

通过宏 OS_CFG_ISR_POST_DEFERRED_EN(位于“os_cfg.h”)可以使能或禁用中断延迟发布。

2.OSIntEnter ()

任务在进入中断服务函数时需要首先调用 OSIntEnter () 函数标记进入中断,方便中断嵌套管理。

OSIntEnter () 函数的定义位于“os_core.c”。

3.OSIntExit ()

与 OSIntEnter () 函数相对应, 任务在退出中断服务函数时需要首调用 OSIntExit () 函数标记退出中断,方便中断嵌套管理。

OSIntExit () 函数的定义位于“os_core.c”。

4.CPU_IntDisMeasMaxGet ()

关中断时间是嵌入式程序设计一个很重要的参数, uC/OS 系统也提供了测量关中断时间的机制。

要使用测量关中断时间机制,必须事先使能该机制(位于“cpu_cfg.h”) 。

要测量关中断时间,除了要使能测量关中断时间功能外,还须在程序初始化时调用CPU_Init() 函数,

该函数里面包括用于初始化测量关中断时间的 CPU_IntDisMeasInit() 函数。CPU_Init() 函数一般在起始任务的初始化部分调用

CPU_IntDisMeasMaxGet () 函数的定义也位于“cpu_core.c 。

5.CPU_IntDisMeasMaxCurReset ()

uC/OS 除了提供测量整个程序的最大关中断时间的用 CPU_IntDisMeasMaxGet () 函数外,

还提供了测量某程序段运行过程中的最大关中断时间的功能函数。 要使用该功能,

同样需要进行跟CPU_IntDisMeasMaxGet()函数一样的初始化。

使用CPU_IntDisMeasMaxCurReset ()和CPU_IntDisMeasMaxCurGet() 两个函数可以实现测量某程序段运行过程中的最大关中断时间。

6.CPU_IntDisMeasMaxCurGet ()

与 CPU_IntDisMeasMaxCurReset () 函数相对应,CPU_IntDisMeasMaxCurGet() 函数是配合其完成测量程序段的最大关中断时间。

CPU_IntDisMeasMaxCurGet() 函数用于结束程序段的最大关中断时间的测量,并返回测量的时间。

最新文章

  1. C#基础总结
  2. Mac 安装mysql
  3. SQL Server 建表语句
  4. CBA 赛程的笔记 - 北京首钢
  5. Maven学习笔记-03-Eclipse下maven项目在Tomcat7和Jetty6中部署调试
  6. php 单态设计模式
  7. dojo 十一 jsonp
  8. Xcode4.4中,代码无法高亮、无法自动补全
  9. 你真正的了解Ajax?Ajax技术简述
  10. Delphi ComboBox的属性和事件、及几个鼠标事件的触发
  11. JVM笔记2-Java虚拟机内存管理简介
  12. SQL学习之查询
  13. 浅谈Java反射
  14. [蓝桥杯]ALGO-49.算法训练_寻找数组中最大值
  15. Unity 屏幕外死亡的敌人的分数显示在屏幕内
  16. 遇见CUBA CLI
  17. (轉)Equal height boxes with CSS
  18. 如何利用java程序实现加密所需的公钥、密钥、数字证书
  19. 基于spec探路者团队贪吃蛇作品的评论
  20. KVC, KVO 实现原理

热门文章

  1. AngularJS判断checkbox/复选框是否选中并实时显示
  2. [Memcached] telnet命令
  3. [原创]电路仿真设计multisim 14安装,破解,汉化教程
  4. 通过java递归思想实现以树形方式展现出该目录中的所有子目录和文件
  5. css定位实现星级展示没有交互
  6. Flask 学习笔记(1)--环境安装
  7. Qt编写自定义控件6-指南针仪表盘
  8. HTML5+CSS3 loading 效果收集--转载
  9. HTTP状态码--含义
  10. centos7 与 archlinux用户 安装 python3模块 pytaglib