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

新思维网站合肥网站优化技术

新思维网站,合肥网站优化技术,中国建筑官网电话,wordpress图片替换不掉HAL 库的freertos 1 实时 2 任务->线程 3 移植 CMSIS_V2 V1版本 NVIC配置全部是抢占优先级 第四组 抢占级别有 0-15 编码规则, 变量名 :类型前缀, c - char S - int16_t L - int32_t U - unsigned Uc - uint8_t Us - uint…

HAL 库的freertos

1 实时

2 任务->线程  

3 移植

CMSIS_V2 V1版本

NVIC配置全部是抢占优先级 第四组  抢占级别有 0-15

编码规则,

变量名 :类型前缀,

c - char

S - int16_t

L - int32_t

U - unsigned

Uc - uint8_t

Us - uint16_t 

指针变量 需要再变量前加一个P

非标准的类型变量名 X

ux是Ubasetype_t 类型的前缀

函数名:有返回值类型和文件所在组成

xTaskCreate() 这个就是返回类型为BaseType_t 在文件名 task.h定义

vQueueDelete() 返回值类型为void 在文件queue.h定义

pcTimerGetName() 返回值为 char * 在timer.h定义

CMSIS RTOS相关文件定义的函数前缀为 os 不包过返回值类型和所在文件的前缀

例如cmsis_os2.h中得函数osThreadNew().

FreeRTOS的配置和功能裁剪 主要是通过文件 FreeRTOSConfig.h和FreeRTOS.h中得一些宏定义实现的。

Cubemx中得FreeRTOS的 config parameters 配置

MPU/FPU   内存保护单元 和 浮点数单元功能

任务管理:调度器

任务状态:

就绪状态   任务被创建后就进入了就绪状态,就绪任务的优先级高于当前运行任务的优先

级,它就会进入运行状态,如果低于当前任务优先级 他依然是就绪状态

运行状态   正在运行任务状态,如果处于运行态的高优先级任务一直在运行时就会导致低   

优先级的就绪态不能够运行,需要使用vTaskSuspend 进入挂起态或者进入阻塞态。

阻塞状态   让任务暂时跳出占用cpu的使用权,处于一种等待状态。通过延时函数  

vTaskDelay()  或者 vTaskDelayUntil()进入阻塞状态 ,等待时间达到后,任务进入就绪状态,在下一次的任务调度中进行运行。第二个就是通过进程之间通讯的时间请求函数,例如请求信号量的函数xSemaphoreTake() 运行这个函数后,任务会进入阻塞状态等待信号量和其他函数的延迟。

挂起状态   挂起状态的任务就是不进行调度的任务,需要其他任务进行调用函数,

vTaskResume()进入就绪状态

抢占式和合作式

任务的优先级:总优先级个数是由 FreeRTOSConfig.h中宏congfigMAX_PRIORITIES来定义默认56  数字越小优先级越低

空闲任务:osKernelStart()启动FreeRTOS的任务调度器时 会自动创建一个空闲任务 ldle task 空闲任务的优先级别为 0

主要配置参数:

congfigUSE_TICK_HOOK 是否使用空闲函数的钩子函数 配置1 则可以利用空闲任务的钩子函数,系统空闲时做一些处理

congfigIDLE_SHOULD_YIELD 空闲任务是否对同优先级的任务主动让出cpu控制权

congfigUSE_TICKLESS_IDLE 是否在空闲任务时关闭基础时钟,若配置1 可实现系统低功耗

任务调度方法

抢占式调度方法

上下文切换是通过汇编语言写的 在上面这个函数里面实现了任务调度

任务管理工具函数 :

获取任务句柄的三个函数

获取或者改变任务优先级:

获取

改变

获取任务信息

获取任务名称

任务栈空间  偏小越容易溢出

任务的状态

任务数量

返回所有任务的列表信息    内存消耗比较大

获得所有任务的状态

运行时间   运行时会禁止中断

返回调度器的状态

taskENTER_CRITICAL() 和  taskEXIT_CRITICAL( ) 实现开关中断

这些中断屏蔽函数只能屏蔽freertos的中断,不能够屏蔽 硬件中断

硬件触发和软件触发的某些中断是 不可以调用 freertos的api函数,因为这些中断不是freertos的一个任务

进程间通信与消息队列:queue消息队列

队列 queue 一个缓冲区 在进程间传递少量的数据  被称为 消息队列

信号量 semaphore 分为而知信号量和技术信号量 二值信号量适用于进程间同步 计数

 信号量一般用于共享资源的管理

互斥量 Mutex 互斥量和递归互斥量 -----互斥量具有优先级继承机制,减少优先级翻转

事件组 Event Group 事件组可以用于多个时间触发一个和多个任务运行 实现事件的 广播 还可以实现多个任务的同步运行

流缓冲区和消息缓冲区 v10版本功能,用于优化进程间通信机制 应用于只有一个 写入者和读取者 适用于多核cpu的内核之间传输数据 

队列的特点和基本操作

这个函数可以读取数据 读完数据后 就会删除队列

 

这个函数可以读取数据 读完数据后 不会删除这个队列

  

在中断服务程序 isr中操作队列的话就需要 运行这种带有fromisr的函数

将队列中得数据全部复位为空

删除一个队列 和一个队列信号量

获取一个队列的名称

为队列设置一个编号

获取队列的编号

获取队列的剩余空间个数

获取队列中等待被读取的消息个数

一个查空一个插满

将消息写入队列的后方

信号量

互斥量

相关的函数:

  事件组

信号量

事件组:

http://www.yayakq.cn/news/179723/

相关文章:

  • 深圳网站建设服务平台亳州建设网站
  • 制作网站的最新软件昆明网站制作的方法
  • 为什么做的网站要续费家居装修企业网站源码
  • 学院网站建设报价哪些做园林的网站
  • 优舟网站建设wordpress社交帐号登录
  • 青白江建设局网站两学一做网站是多少钱
  • 建设职业技术学院网站seo营销优化
  • 网站开发 百度编辑器传统旅行社如何建设网站
  • 不是做有网站都叫jwth网络推广服务开票
  • 太原网站制作多少钱学做网站php吗
  • 企业网站优化分为两个方向重庆装修论坛
  • 做网站翻页怎么做wordpress评论折叠
  • 建设网站具体步骤整站优化
  • 在线网站编辑导航页面wordpress代码
  • 商会网站设计怎么给自己的网站做seo
  • 关于申请网站建设网络营销推广方案前言
  • 免费下载教学设计的网站河南省新闻头条最新消息
  • 一个网站需要几个人做苏州网站开发公司
  • 技术支持 东莞网站建设手机网站输入框
  • 企模网站南通制作网站的有哪些公司吗
  • 江阴规划建设局网站公司做网站一般
  • 一键建站哪家信誉好自考网页制作与网站建设
  • 网站的ftp上传地址正规大宗商品交易平台
  • 专业网站策划国内最好景观设计公司排名
  • 企业网站建设公司电话新加坡网站制作
  • 58同城怎么做网站怎样用模板建网站
  • 网站建设多少钱明细广州市建设工程安监站网站
  • 做网站带阿里云服务器多少钱国内国际时事图片
  • pc网站开发使用什么布局好有人看片吗免费观看
  • 如何再网站上做免费广告网站推广找