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

新塘17网站一起做网店官网宁波seo

新塘17网站一起做网店官网,宁波seo,浙江省建设工程造价协会网站,洛阳网站建设价格低中断管理介绍 嵌入式实时系统需要对整个系统环境产生的事件作出反应。这些事件对处理时间和响应时间都有不同的要求。事件通常采用中断方式检测,中断服务例程(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.hrbkazy.com/news/12304.html

相关文章:

  • 郑州建设网站定制最佳磁力吧ciliba搜索引擎
  • 网站开发过程中的方法常州百度搜索优化
  • 网站建设毕业设计选题今日重大国际新闻军事
  • 推广网站软文网络营销产品的首选产品
  • 做网站英语老师的简历百度竞价官网
  • 网站分析怎么做保定百度推广联系电话
  • 廊坊网站制作如何在百度提交自己的网站
  • 上海传媒公司介绍百度seo关键词优化推荐
  • 北京建网站的公司网络营销带来的效果
  • 建设投注网站怎么交换友情链接
  • 企业宣传手册封面模板seo怎么优化排名
  • 征婚交友网站系统模板那个好技能培训机构排名前十
  • 企业网站建设存在的问题直通车优化推广
  • 网站文字不能复制怎么做加盟教育培训哪个好
  • 低价网站建设方案seo专员工资待遇
  • 模板建站什么意思买卖平台
  • 武汉教育网站建设优化域名怎么查
  • 外贸企业网站建设公司价格1688官网
  • 赣州网站建设-赣州做网站地推项目发布平台
  • 婚纱摄影网站设计理念深圳网站关键词优化推广
  • 百度能做网站建设吗seo高效优化
  • 网站项目报价绍兴seo管理
  • 杭州有哪些做网站的公司最近最新的新闻
  • 怎么自己做卡盟网站友点企业网站管理系统
  • 写作网站制作中国免费网站服务器主机域名
  • web前端做网站项目赚钱国外独立网站如何建站
  • 那些网站招聘在家里做的客服大冶seo网站优化排名推荐
  • 建立自己网站免费seo公司后付费
  • 平面设计师长逛的网站有哪些一键优化下载
  • 哪个网站做美食自媒体更好aso优化{ }贴吧