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

室内设计有哪些网站网站建设互联网加

室内设计有哪些网站,网站建设互联网加,wordpress 链接优化,做网站用虚拟主机还是用服务器前言#xff1a; FreeRTOS中#xff0c;中断需要注意几点#xff1a; 何时使用中断#xff1b;中断服务函数#xff08;ISR#xff09;要处理的数据量有多大#xff0c;通常我们希望中断的切换越快越好#xff0c;也就是说#xff0c;ISR尽量采用耗时较少的处理方式…前言 FreeRTOS中中断需要注意几点 何时使用中断中断服务函数ISR要处理的数据量有多大通常我们希望中断的切换越快越好也就是说ISR尽量采用耗时较少的处理方式那该如何操作呢 一、延迟中断概念 所以为了中断服务函数应该尽量断因此这里才用中断的前部和中断的后部来处理 前部负责处理不耗时的操作比如任务的同步发送信号量去通知任务 后部负责处理耗时的操作这时候中断已经恢复现场实际执行可以视为软中断即在一个Task任务中执行 上述的方式也可以称之为延迟中断处理 思路是 1首先创建一个二值信号量去同步任务 2进入中断发送信号量让任务解除阻塞这样在中断服务函数运行完就可以立即执行同步任务。 原理 1)中断处理可以说是被推迟(deferred)到一个处理(handler)任务中 2)如果某个中断处理要求特别紧急其延迟处理任务的优先级可以设为最高以保证延迟处理任务随时都抢占系统中的其它任务。 3)延迟处理任务就成为其对应的 ISR退出后第一个执行的任务在时间上紧接着 ISR 执行相当于所有的处理都在 ISR 中完成一样。 二、中断安全的API 通常需要在中断服务函数(ISR)中调用FreeRTOS的API函数但许多的API在ISR中是不安全的其中一些API会将调用的任务转换到阻塞态如果在ISR中调用了这类API则会出现很多问题。FreeRTOS通过提供两个版本的API来解决这个问题一个版本供任务调用一个版本供ISR调用用于ISR版本的API其函数名都带有FromISR后缀。   1那么我同步的信号量的函数为 xSemaphoreGiveFromISR( PHY_RX_xSemaphore, xHigherPriorityTaskWoken); PHY_RX_xSemaphore定义的二值信号量 2)在中断内不会自动切换到高优先级的任务需要应用程序设置变量以通知调度器执行上下文切换。中断安全版的API(以“FromISR”结尾的函数) 具有一个名为pxHigherPriorityTaskWoken的指针如果应该执行上下文切换则中断安全版API函数将(*pxHigherPriorityTaskWoken)设置为pdTRUE因此pxHigherPriorityTaskWoken指向的变量必须在第一次使用前初始化为pdFALSE。 初始化BaseType_t xHigherPriorityTaskWoken pdFALSE; API函数只能将(*pxHigherPriorityTaskWoken)设置为pdTRUE如果ISR调用多个API函数则可以给每个API传入一个pxHigherPriorityTaskWoken指向的变量但必须在第一次使用前初始化为pdFALSE。 pxHigherPriorityTaskWoken参数是可选的。如果不需要将pxHigherPriorityTaskWoken设置为NULL即可。 3请求上下文切换的宏 taskYIELD() 是一个可以在任务中调用以请求上下文切换的宏。 portYIELD_FROM_ISR() 和portEND_SWITCHING_ISR() 以相同的方式使用并执行相同的操作。 一些FreeRTOS移植仅提供两个宏中的一个。 较新的FreeRTOS移植提供两种宏。 本文将使用portYIELD_FROM_ISR()宏。   那么这个宏的作用就是portYIELD_FROM_ISR()来执行上下文的切换前提得根据xHigherPriorityTaskWoken当xHigherPriorityTaskWoken为pdFALSE 调用portYIELD_FROM_ISR()将不会发生上下文切换,否则就会发生上下文切换 三、实际应用 下面是我以太网中断应用 void ETH_IRQHandler(void)//以太网中断 {  BaseType_t xHigherPriorityTaskWoken pdFALSE;  xSemaphoreGiveFromISR( PHY_RX_xSemaphore, xHigherPriorityTaskWoken);       ETH_DMAClearITPendingBit(ETH_DMA_INT_R);   ETH_DMAClearITPendingBit(ETH_DMA_INT_NIS);  portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } /* 定义一个信号量用于PHY接受数据同步 */ SemaphoreHandle_t PHY_RX_xSemaphore; void NETWORK_Task(void *pvParameters) {           for(;;)           {                     if(xSemaphoreTake(PHY_RX_xSemaphore,portMAX_DELAY) pdTRUE)                     {                         //执行函数                     }           } } 注如果在系统中断中要使用FreeRTOS的API函数然后不带“FromISR”结尾的函数则会串口打印信息回出现 Error:..\..\FreeRTOS\portable\RVDS\ARM_CM4F\port.c,422  所以一定要使用API(以“FromISR”结尾的函数
http://www.zqtcl.cn/news/641007/

相关文章:

  • 做搜狗手机网站点击软网站建设有哪些种类
  • 想自学做网站太原要做网站的公司
  • 站内seo优化淘宝网站推广策划方案
  • 福建建设执业注册中心网站网址格式怎么写
  • 网站开发外包公司坑襄垣城乡建设管理局的网站
  • 网络公司怎么做网站常州新北区网站建设
  • 扬州专业外贸网站建设推广做详情页上什么网站找素材
  • 北京做网站设计招聘深圳市住房和建设局官网平台
  • 冻品网站建设网站头图设计
  • 手机网站分辨率做多大h5微网站建设多少钱
  • 网站制作软件下载公司怎么注册邮箱帐号
  • 做婚纱网站的图片园林设计
  • 濮阳公司建站淮北城市住建网
  • 建设银行网站打不开 显示停止工作专门做地图的网站
  • 有没有人一起做网站app网站建设方案
  • 洛阳网站建设兼职企业网站建设文案
  • 动漫制作贵州seo策略
  • asp网站建设项目实训该怎么跟程序员谈做网站
  • 网站软件资源iis不能新建网站
  • 网站设计的发展趋势西安市建设工程交易网
  • 做外贸收费的服装网站武钢建设公司网站
  • wordpress 全文搜索企业网站优化策略
  • 犀牛云做网站如何网站备案需要什么东西
  • wordpress星座网站建设与优化计入什么科莫
  • 外贸网站优化方案绵阳网站建设怎么做
  • 黑龙江省网站建设电商的运营推广
  • 惠州建站模板wordpress更换主题帖子封面不显示
  • 网站开发为什么不用cgi了营销型网站案例
  • 网站怎么做飘窗电子商城网站建设的实训内容
  • 怎样申请建网站做it公司网站