当前位置: 首页 > news >正文

有和wind一样做用网站互动营销公司

有和wind一样做用网站,互动营销公司,网站建设推广服务合同,毕业设计做的网站抄袭中断管理介绍 嵌入式实时系统需要对整个系统环境产生的事件作出反应。这些事件对处理时间和响应时间都有不同的要求。事件通常采用中断方式检测,中断服务例程(ISR)中的处理量应当越短越好。ISR是在内核中被调用的, ISR执行过程中,用户的任务…

中断管理介绍

嵌入式实时系统需要对整个系统环境产生的事件作出反应。这些事件对处理时间和响应时间都有不同的要求。事件通常采用中断方式检测,中断服务例程(ISR)中的处理量应当越短越好。ISR是在内核中被调用的, ISR执行过程中,用户的任务无法执行。 ISR要尽量快,否则:其他低优先级的中断无法被处理:实时性无法保证。
如果这个硬件中断的处理,就是非常耗费时间呢?对于这类中断的处理就要分为2部分:

  • ISR:尽快做些清理、记录工作,然后触发某个任务
  • 任务:更复杂的事情放在任务中处理
  • 所以:需要 ISR 和任务之间进行通信

注意:只有以”FromISR”或”FROM_ISR”结束的 API 函数或宏才可以在中断服务例程中。

俩套API函数

在任务函数中,我们可以调用各类 API 函数,比如队列操作函数: xQueueSendToBack。但是在 ISR 中使用这个函数会导致问题,应该使用另一个函数: xQueueSendToBackFromISR,它的函数名含有后缀"FromISR",表示"从 ISR 中给队列发送数据"。FreeRTOS中很多API函数都有两套:一套在任务中使用,另一套在ISR中使用。后者的函数名含有"FromISR"后缀。

为什么要引入两套API函数?
很多 API 函数会导致任务计入阻塞状态;运行这个函数的任务进入阻塞状态;比如写队列时,如果队列已满,可以进入阻塞状态等待一会,ISR 调用 API函数时, ISR 不是"任务", ISR 不能进入阻塞状态。所以,在任务中、在 ISR 中,这些函数的功能是有差别的。

xHigherPriorityTaskWoken 参数
xHigherPriorityTaskWoken 的含义是:是否有更高优先级的任务被唤醒了。如果为pdTRUE,则意味着后面要进行任务切换。
在这里插入图片描述
可以看到,在任务中调用 API 函数可能导致任务阻塞、任务切换,这叫做"context switch",上下文切换。这个函数可能很长时间才返回,在函数的内部实现了任务切换。
xQueueSendToBackFromISR()函数也可能导致任务切换,但是不会在函数内部进行切换,而是返回一个参数:表示是否需要切换,函数原型与用法如下:

/*
* 往队列尾部写入数据,此函数可以在中断函数中使用,不可阻塞
*/
BaseType_t xQueueSendToBackFromISR(
QueueHandle_t xQueue,
const void *pvItemToQueue,
BaseType_t *pxHigherPriorityTaskWoken
);
/* 用法示例 */
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
xQueueSendToBackFromISR(xQueue, pvItemToQueue, &xHigherPriorityTaskWoken);
if (xHigherPriorityTaskWoken == pdTRUE)
{
/* 任务切换 */
}

在这里插入图片描述
使用"FromISR"函数时,如果不想使用xHigherPriorityTaskWoken参数,可以设置为NULL。

ISR中任务切换
portEND_SWITCHING_ISR( xHigherPriorityTaskWoken ); //使用汇编实现
//或者使用以下函数
portYIELD_FROM_ISR( xHigherPriorityTaskWoken );//使用 C 语言实现
void XXX_ISR()
{
int i;
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
for (i = 0; i < N; i++)
{
xQueueSendToBackFromISR(..., &xHigherPriorityTaskWoken); /* 被多次调用 */
}
/* 最后再决定是否进行任务切换
* xHigherPriorityTaskWoken 为 pdTRUE 时才切换
*/
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
中断延迟处理

如果在中断中需要处理的函数十分耗时,那么就要考虑分为以下俩个步骤进行处理

  • ISR:尽快做些清理、记录工作,然后触发某个任务
  • 任务:更复杂的事情放在任务中处理
    在这里插入图片描述

俩套函数API

在这里插入图片描述

http://www.ds6.com.cn/news/21214.html

相关文章:

  • 网站优化公司排行石家庄网站建设公司
  • 岗网站制作百度宣传推广费用
  • 怎么用mvc架构做网站在线培训网站
  • 教育培训类网站模板fifa最新排名出炉
  • 公司网站建设合同要交印花税吗上海网络推广软件
  • 交换广告是两个网站做友情链接吗广州seo技术外包公司
  • 单位网站建设seo流程
  • 怎样申请一个网站佛山seo
  • 网站建设 日志百度关键词优化软件网站
  • 深圳价格实惠的网站建设公司如何优化网页
  • 网站建设全部代码app拉新项目一手渠道商
  • 网站建设7个基玉林网站seo
  • 网站服务器续费seo对各类网站的作用
  • wordpress英文版下载东莞百度seo新网站快速排名
  • 微信网站开发外贸网站有哪些
  • 北京的网站建设收费标准万词霸屏百度推广seo
  • 天工网工程新希望官网武汉seo优
  • 中国英文政务网站建设个人博客网站怎么做
  • 教学互动网站开发背景seo是什么意思如何实现
  • 重庆网站推广青岛百度推广优化
  • 供别人采集的网站怎么做如何进行网络推广营销
  • 黑色网站公关公司一般收费标准
  • 青岛市做网站中国网络营销网
  • 影视网站源码下载网络营销的手段有哪些
  • 一个网站开发需要几人优化英语
  • 怎么做网站访问被拒绝东莞seo关键词
  • 厦门网站推广费用北京网站建设制作开发
  • 郑州房产信息网官网西安整站优化
  • 建立网站如何规划和实施建设线上推广平台哪些好
  • iis网站架设教程关键词优化简易