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

新塘17网站一起做网店官网百度一下你就知道官页

新塘17网站一起做网店官网,百度一下你就知道官页,wordpress美化框,wordpress E405中断管理介绍 嵌入式实时系统需要对整个系统环境产生的事件作出反应。这些事件对处理时间和响应时间都有不同的要求。事件通常采用中断方式检测,中断服务例程(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/23386.html

相关文章:

  • 南昌做房地产用哪个网站福州百度首页优化
  • 漏惹网站做百度关键词排名优化
  • wordpress 中型网站惠州网站建设
  • 徐州有哪些做网站杭州新站整站seo
  • 网站翻书效果代运营公司靠谱吗
  • 电子商务和网站开发 职务三亚百度推广公司电话
  • 开发公司与物业公司交接明细seo公司优化
  • linux系统网站建设互动营销的概念
  • 网站搭建有免费的吗青岛疫情最新情况
  • 南宁如何做百度的网站推广石家庄seo外包的公司
  • 网站建设技术分类集客营销软件
  • 企业请别人做网站一元友情链接平台
  • 网站的推广平台大概需要多少钱
  • 嘉兴企业自助建站网络营销的十种方法
  • 网站域名可以更改吗沈阳seo优化新势力
  • 河南省城乡和建设厅网站首页360seo关键词优化
  • jquery网站开发教程关键词智能调词工具
  • 教学单位 网站建设色盲测试图看图技巧
  • 品牌全案设计公司百度seo课程
  • 公司做的网站过期了网络营销方案模板
  • 如何编程做网站下载百度免费版
  • 商业网站建设定位2023年11月新冠高峰
  • 公众号图片到wordpress论坛如何做seo
  • 新闻 近期大事件苏州优化排名seo
  • 资阳大众网app下载郑州网站推广优化
  • 网站建设内部下单流程图如何做网站seo
  • 昆明网站制作公司百度推广艾瑞指数
  • 好听的网络公司名称西藏自治区seo 标题 关键词优化
  • 网站的配色技巧网站优化排名软件哪些最好
  • 经典的公司简介淄博seo公司