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

有和wind一样做用网站长沙营销型网站建设

有和wind一样做用网站,长沙营销型网站建设,南山的网站建设,wordpress 输出标签id中断管理介绍 嵌入式实时系统需要对整个系统环境产生的事件作出反应。这些事件对处理时间和响应时间都有不同的要求。事件通常采用中断方式检测,中断服务例程(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.yidumall.com/news/91952.html

相关文章:

  • 抖音创作服务平台关键词优化是什么意思?
  • 成都网站制作定制推广怎么做才可以赚钱
  • 临沂做进销存网站什么是电商平台推广
  • 网站优化公司收费推广渠道有哪些方式
  • 网站建设维护视频教程今日重大新闻头条财经
  • 做网站需要招聘内容培训网络营销的机构
  • 优化系统功能广州seo快速排名
  • 农林网站建设公司设计模板网站
  • 公司网站建设的步骤百度爱采购怎么优化排名
  • 互利互通网站建设whois域名查询
  • 学做网站要多少钱外贸网站建设流程
  • 用政府网站做参考文献的格式企业网站设计价格
  • 济南网站推广排名seo排名优化联系13火星软件
  • 做网站做图电脑需要什么配置seo顾问服务咨询
  • 安徽工程建设信息网站电商网站销售数据分析
  • 辽宁网站制作2021年十大热点事件
  • 怎么修改网站默认首页中文域名
  • 煜阳做网站应用宝aso优化
  • 专门做岛屿的网站网上营销怎么做
  • 研究生做家教什么网站seo优化工具软件
  • 网站建设页面设计友情链接代码模板
  • 网站排名seo软件可以直接进入网站的正能量
  • 昆山靠谱的网站建设公司国外网站开发
  • 有一个私人做慈善的网站衡阳seo
  • 安什么网站建设广告策划方案范文
  • 沃尔玛线上商城上海外包seo
  • web服务器安装与配置网站搜索引擎优化诊断
  • 起点数据网是谁做的网站惠州抖音seo策划
  • 邯郸网站建设的地方百度网页提交入口
  • 电商网站怎么制作石家庄百度关键词搜索