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

wordpress简码广州网站优化工具

wordpress简码,广州网站优化工具,平面设计和电商设计的区别,市场营销毕业后做什么工作资料来源于硬件家园#xff1a;资料汇总 - FreeRTOS实时操作系统课程(多任务管理) 目录 一、中断优先级 1、NVIC基础知识 2、FreeRTOS配置NVIC 3、SVC、PendSV、Systick中断 4、不受FreeRTOS管理的中断 5、STM32CubeMX配置 二、任务优先级 1、任务优先级说明 2、任务…资料来源于硬件家园资料汇总 - FreeRTOS实时操作系统课程(多任务管理) 目录 一、中断优先级 1、NVIC基础知识 2、FreeRTOS配置NVIC 3、SVC、PendSV、Systick中断 4、不受FreeRTOS管理的中断 5、STM32CubeMX配置 二、任务优先级 1、任务优先级说明 2、任务优先级分配方案 3、中断优先级与任务优先级区别 4、任务优先级修改与获取 三、开关中断与临界段函数 1、临界段概念 2、开关中断函数 3、任务代码临界段处理函数 4、中断代码临界段处理函数 四、优先级与临界代码编程测试 一、中断优先级 1、NVIC基础知识 NVIC即嵌套向量中断控制器(Nested Vectored Interrupt Controller)。STM32的中有一个强大而方便的NVIC它是属于CM4内核的器件。NVIC是嵌套向量中断控制器控制着整个芯片中断相关的功能它跟内核紧密耦合是内核里面的一个外设。但是各个芯片厂商在设计芯片的时候会对CM4内核里面的NVIC进行裁剪把不需要的部分去掉所以说STM32 的NVIC是 CM4 的NVIC的一个子集 2、FreeRTOS配置NVIC 官方强烈建议将中断优先级分组设置为4即抢占优先级可配置范围是0-15数值越小抢占优先级越高。 3、SVC、PendSV、Systick中断 SVC 中断 在 FreeRTOS 的移植文件 ports.c 中有用到 SVC 中断的 0 号系统服务即 SVC 0。此中断在 FreeRTOS中仅执行一次用于启动第一个要执行的任务。另外由于 FreeRTOS 没有配置 SVC 的中断优先级默认没有配置的情况下SVC 中断的优先级就是最高的 0。 4、不受FreeRTOS管理的中断 FreeRTOS 内核源码中有多处开关全局中断的地方这些开关全局中断会加大中断延迟时间。比如在源码的某个地方关闭了全局中断但是此时有外部中断触发这个中断的服务程序就需要等到再次开启全局中断后才可以得到执行。开关中断之间的时间越长中断延迟时间就越大这样极其影响系统的实时性。如果这是一个紧急的中断事件得不到及时执行的话后果是可想而知的。针对这种情况FreeRTOS 就专门做了一种新的开关中断实现机制。关闭中断时仅关闭受 FreeRTOS管理的中断不受 FreeRTOS 管理的中断不关闭这些不受管理的中断都是高优先级的中断用户可以在这些中断里面加入需要实时响应的程序。 二、任务优先级 1、任务优先级说明 ① FreeRTOS 中任务的最高优先级是通过 FreeRTOSConfig.h 文件中的 configMAX_PRIORITIES 进行配置的用户实际可以使用的优先级范围是 0 到 configMAX_PRIORITIES – 1。比如我们配置此宏定义为 5那么用户可以使用的优先级号是 0,1,2,3,4不包含 5对于这一点初学者要特别的注意。 ② 用户配置任务的优先级数值越小那么此任务的优先级越低空闲任务的优先级是 0。 ③ 建议用户配置宏定义 configMAX_PRIORITIES 的最大值不要超过 32即用户任务可以使用的优先级范围是0到31。因为对于CM内核的移植文件用户任务的优先级不是大于等于32的话portmacro.h文件中的宏定义configUSE_PORT_OPTIMISED_TASK_SELECTION会优化优先级列表中要执行的最高优先级任务的获取算法对于 CM 内核的移植文件此宏定义默认是使能的当然用户也可以在FreeRTOSConfig.h 文件中进行配置。 ④ 如果用户在 FreeRTOSConfig.h 文件中配置宏定义 configUSE_TIME_SLICING 为 1或者没有配置此宏定义时间片调度都是使能的。另外只要芯片资源允许可以配置任意多个同优先级任务。 ⑤ FreeRTOS 中处于运行状态的任务永远是当前能够运行的最高优先级任务。 2、任务优先级分配方案 任务优先级设置推荐方式如下图 ① IRQ 任务IRQ 任务是指通过中断服务程序进行触发的任务此类任务应该设置为所有任务里面优先级最高的。② 高优先级后台任务比如按键检测触摸检测USB 消息处理串口消息处理等都可以归为这一类任务。③ 低优先级的时间片调度任务比如 emWin 的界面显示LED 数码管的显示等不需要实时执行的都可以归为这一类任务。④ 空闲任务空闲任务是系统任务。⑤ 特别注意IRQ 任务和高优先级任务必须设置为阻塞式调用消息等待或者延迟等函数即可只有这样高优先级任务才会释放 CPU 的使用权,从而低优先级任务才有机会得到执行。 3、中断优先级与任务优先级区别 中断的优先级永远高于任何任务的优先级即任务在执行的过程中中断来了就开始执行中断服务程序。对于 STM32中断优先级的数值越小优先级越高。而 FreeRTOS的任务优先级是任务优先级数值越小任务优先级越低。 4、任务优先级修改与获取 ①优先级获取UBaseType_t uxTaskPriorityGet( TaskHandle_t xTask );  函数描述函数 vTaskPriorityGet 用于获取 FreeRTOS 任务优先级。 使用此函数需要在 FreeRTOSConfig.h 配置文件中配置如下宏定义为 1 #define INCLUDE_vTaskPriorityGet    1 如果第二个参数里面填的是 NULL即数值 0 的话那么获取的优先级就是当前正在执行的任务 ②优先级修改void vTaskPrioritySet( TaskHandle_t xTask, UBaseType_t uxNewPriority );  函数描述函数 vTaskPrioritySet 用于实现 FreeRTOS 任务优先级的修改。   第 1 个参数是任务句柄用于区分不同的任务。   第 2 个参数是给任务配置的新优先级。 使用这个函数要注意以下问题 使用此函数需要在 FreeRTOSConfig.h 配置文件中配置如下宏定义为 1 #define INCLUDE_vTaskPrioritySet   1 如果第一个参数里面填的是 NULL即数值 0 的话那么配置的就是当前正在执行的任务 如果被修改的任务的优先级修改后高于正在执行的任务将执行任务切换切换到修改好的高优先级任务。 第二个参数数值不可大于等于 FreeRTOSConfig.h 文件中的宏定义#define configMAX_PRIORITIES 配置的数值。 三、开关中断与临界段函数 1、临界段概念 ①代码的临界段也称为临界区一旦这部分代码开始执行则不允许中断打断。为确保临界段代码的执行不被中断在进入临界段之前须关中断而临界段代码执行完毕后要立即开中断。 ②进入临界段前操作寄存器 basepri 关闭了所有小于等于宏定义 configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY所定义的中断优先级这样临界段代码就不会被中断干扰到而且实现任务切换功能的 PendSV 中断和滴答定时器中断是最低优先级中断所以此任务在执行临界段代码期间是不会被其它高优先级任务打断的。退出临界段时重新操作 basepri 寄存器即打开被关闭的中断这里我们不考虑不受 FreeRTOS 管理的更高优先级中断 ③除了 FreeRTOS 操作系统源码所带的临界段以外用户写应用的时候也有临界段的问题比如以下两种  读取或者修改变量特别是用于任务间通信的全局变量的代码一般来说这是最常见的临界代码。  调用公共函数的代码特别是不可重入的函数如果多个任务都访问这个函数结果是可想而知的。总之对于临界段要做到执行时间越短越好否则会影响系统的实时性。 2、开关中断函数 reeRTOS 提供了一组开关中断函数比较简单。 具体实现如下 #define taskDISABLE_INTERRUPTS()    portDISABLE_INTERRUPTS() #define taskENABLE_INTERRUPTS()     portENABLE_INTERRUPTS() 进一步跟踪宏定义的实现如下 #define portDISABLE_INTERRUPTS()    vPortRaiseBASEPRI() #define portENABLE_INTERRUPTS()     vPortSetBASEPRI( 0 ) 3、任务代码临界段处理函数 任务代码进入和退出临界段的函数如下 #define taskENTER_CRITICAL()   portENTER_CRITICAL() #define taskEXIT_CRITICAL()       portEXIT_CRITICAL() 4、中断代码临界段处理函数 中断代码进入和退出临界段的函数如下 #define taskENTER_CRITICAL_FROM_ISR()    portSET_INTERRUPT_MASK_FROM_ISR() #define taskEXIT_CRITICAL_FROM_ISR( x )  portCLEAR_INTERRUPT_MASK_FROM_ISR( x ) 四、优先级与临界代码编程测试 ①不受操作系统管理的中断设置。如下0-4不受操作系统控制 ②获取与设置任务优先级使能 ③NVIC界面 ④任务临界段保护 ⑤中断临界段保护
http://www.zqtcl.cn/news/868844/

相关文章:

  • 北京建设网站有哪些公司黄陌陌网站怎么做
  • 视频网页制作教程网站优化防范
  • 做优化网站注意什么开发者模式开着好不好
  • 网站顾客评价网站中怎么做网站统计
  • 网站建设安全措施表白网站是怎么做的
  • 一个服务器可以做几个网站百度北京公司地址全部
  • 武侯区网站建设哪里好点个人社保缴费比例是多少
  • 创建属于自己的网站定制应用软件有哪些
  • 网站建设类岗位建设工程施工合同示范文本2023最新版
  • 建站设计公司wordpress 跨域 cros
  • 做网站的公司哪好工程设计东莞网站建设技术支持
  • 虹口网站开发开发公司设计管理部绩效考核
  • 网站改版升级通知国外服务器公司有哪些
  • 做网站的s标的软件深圳网站建设 湖南岚鸿
  • 设计网站建设的合同书公司装修合同范本
  • 门户网站的好处企业邮箱系统
  • 重庆企业建站公司有那些网站做结伴旅游的
  • 创意营销策划案例网站网页制作及优化
  • 网站上动画视频怎么做的建设兵团12师教育局网站
  • 博客网站开发思维导图app网站制作公司
  • 池州网站建设有哪些公司兴义网站seo
  • seo优化网站模板网站建设的七大优缺点
  • 天猫国际采取的跨境电商网络营销方式关键词排名优化公司推荐
  • 亳州建设网站做网站文字怎么围绕图片
  • 网站开发 项目计划外链建设给网站起的作用
  • 你好南京网站网站开发实施步骤和说明
  • 文化共享工程网站建设情况wordpress菠菜插件
  • 网站大气是什么意思哈尔滨做网站电话
  • 公司网站站群是什么化妆品网站设计欣赏
  • 网站公司未来计划ppt怎么做平潭做网站