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

导购网站怎么建立三亚市住房与城乡建设局网站

导购网站怎么建立,三亚市住房与城乡建设局网站,美食网站建设策划方案,一个网站两个空间笔记2 FreeRTOS任务FreeRTOS配置 1、FreeRTOSConfig.h配置文件作用 对FreeRTOS进行功能配置和裁剪,以及API函数的使能。 2、学习途径 官方的在线文档中有详细说的说明:https://www.freertos.org/a00110.html 。正点原子《FreeRTOS开发指南》第三章的内容…

笔记2 FreeRTOS任务


FreeRTOS配置

1、FreeRTOSConfig.h配置文件作用

对FreeRTOS进行功能配置和裁剪,以及API函数的使能。

2、学习途径

  1. 官方的在线文档中有详细说的说明:https://www.freertos.org/a00110.html 。
  2. 正点原子《FreeRTOS开发指南》第三章的内容 — FreeRTOS系统配置。

3、配置文件中相关宏的分类

相关宏大致可以分为三类。

  • ‘INCLUDE’开头 — 配置FreeRTOS中可选的API函数。
  • ’config‘开头 — 完成FreeRTOS的功能配置和裁剪(如调度方式、使能信号量功能等)。
  • 其他配置 — PendSV宏定义、SVC宏定义。

FreeRTOS任务创建和删除


一、任务创建和删除API函数

1、任务创建和删除的本质

任务创建和删除的本质就是调用FreeRTOS的API函数。
在这里插入图片描述

2、任务动态创建和静态创建的区别

  • 动态创建任务 :任务的任务控制块以及任务的栈空间所需的内存,均由FreeRTOS从FreeRTOS管理的堆中分配。
  • 静态创建任务 :任务的任务控制块以及任务的栈空间所需的内存,需要用户分配提供。

3、任务控制块结构体成员介绍

在这里插入图片描述

  1. 任务栈栈顶,在任务切换时的任务上下文保存、任务恢复息息相关。
  2. 每个任务都有属于自己的任务控制块,类似身份证。

4、什么是临界区保护

临界区保护,保护那些不想被打断的程序段,关闭freertos所管理的中断,中断无法打断,滴答中断和PendSV中断无法进行不能实现任务调度 。

5、动态创建优点

动态创建使用起来相对简单。在实际的应用中,动态方式创建任务是比较常用的,除非有特殊的需求,一般都会使用动态方式创建任务 。

6、静态创建优点

静态创建可将任务堆栈放置在特定的内存位置,并且无需关心对内存分配失败的处理 。

7、创建任务时任务堆栈所存内容

在这里插入图片描述

  1. 寄存器下PSR被初始为0x01000000,其中bit24被置1,表示使用Thumb指令。
  2. 寄存器PC被初始化为任务函数指针(任务A,即我们写的任务函数的地址),这样当某次任务切换后,任务A获得CPU控制权,任务函数(任务A)被出栈到PC寄存器,之后会执行任务A的代码。
  3. LR寄存器初始化为函数指针prvTaskExitError,这个函数是FreeRTOS提供的,是一个出错处理函数。
  4. 子函数的调用通过寄存器R0~R3传递参数,创建任务时,我们传入的参数被保存到R0中,用来向任务传递参数。

二、任务创建—动态方法

1、动态任务创建函数

函数参数:在这里插入图片描述

函数返回值:

在这里插入图片描述

2、实现动态创建任务流程

  1. 将FreeRTOSConfig.h文件中宏configSUPPORT_DYNAMIC_ALLOCATION配置为1。
  2. 定义函数入口参数。
  3. 编写任务函数。

动态任务创建函数创建的任务会立刻进入就绪态,由任务调度器调度运行。

3、动态任务创建函数内部实现简述

  1. 申请堆栈内存&任务控制块内存。
  2. TCB结构体(任务控制块)成员赋值。
  3. 添加新任务到就绪列表中。

三、任务创建—静态方法(掌握)

1、静态任务创建函数

函数参数:在这里插入图片描述

函数返回值:

在这里插入图片描述

2、实现静态创建任务流程

  1. 将FreeRTOSConfig.h文件中宏configSUPPORT_STATIC_ALLOCATION配置为1。
  2. 定义空闲任务&定时器任务的任务堆栈以及TCB。
  3. 实现两个接口函数(vAppLicationGetldleTaskMemory() 空闲任务接口函数和vApplicationGetTimerTaskMemory()定时器任务接口函数)。
  4. 定义函数入口参数。
  5. 编写任务函数。

静态任务创建函数创建的任务会立刻进入就绪态,由任务调度器调度运行。

3、静态任务创建函数内部实现简述

  1. TCB结构体成员赋值。
  2. 添加新任务到就绪列表中。

四、任务删除

1、任务删除函数

在这里插入图片描述

任务删除函数用于删除已经被创建的任务,被删除的任务将从就绪任务列表、阻塞任务列表、挂起任务列表和事件列表中移除。

注意:

  1. 当传入的参数为NULL,则代表删除任务自身(当前正在运行的任务)。
  2. 空闲任务会负责释放被删除任务中由系统分配的内存,但是由用户在任务删除前申请的内存空间,必须用户在任务被删除前提前释放,否则将会导致内存泄漏。

2、删除任务流程

  1. 使用删除任务函数,将FreeRTOSConfig.h文件中宏INCLUDE_vTaskDelete配置为1。
  2. 入口参数输入需要删除的任务句柄(NULL代表删除本身)。

3、删除任务函数内部实现简述

  1. 获取所要删除的任务控制块 — 通过传入的任务句柄,判断所需要删除哪个任务,NULL代表删除自身。

  2. 将被删除任务移除所在列表 — 将该任务所在列表中移除,包括:就绪、阻塞、挂起、事件等列表。

  3. 判断所需要删除的任务

    –> 删除任务自身,需要先添加到等待删除列表,内存释放将在空闲任务执行。

    –> 删除其他任务,释放内存,任务数量。

  4. 更新下个任务的阻塞时间 — 更新下一个任务的阻塞超时时间,以防止被删除的任务就是下一个阻塞超时的任务。


http://www.dtcms.com/a/445151.html

相关文章:

  • 河南郑州网站制作公司石家庄到底怎样了
  • 广西南宁网站建设哪家好html模板之家免费下载
  • 网站收录查询主要由哪几个网站如何对网站做实证分析
  • wordpress 支付方式北京关键词优化平台
  • 网站宣传用了最字哈尔滨快速建站案例
  • 网站开发行业标准为什么做电影网站没有流量吗
  • 站长之家官网天眼查网站建设公司
  • 天津建站安徽建工招采平台
  • 仪征市企业网站建设公司自助建站申请书
  • wordpress账户密码深圳网站优化方式
  • 网站首页制作代码中山外贸出口网站建设多少钱哪里有
  • 广东网站搭建上海装修公司前十强排名榜
  • 网站开发哪一种语言好做网站流量的方法
  • 怎么提高网站排名怎么创建公众号赚钱
  • 自己怎么做入网站回收书报wordpress 页面代码
  • 网站建设专家工作内容专业网站设计公司排名
  • 网站的图文链接怎么做安阳市网站建设
  • 中国五大网络运营商天津百度关键词seo
  • 深圳设计网站招聘东莞网络推广营销
  • 怎么删除网站死链网线制作心得体会
  • 网站负责人照片企业官网定制设计
  • 网站前端开发流程易企秀在线制作免费
  • 如何免费申请网站深圳做品牌网站
  • 十堰微网站建设多少钱记事本做网站怎么加背景图
  • 百度搜索不到公司网站毕业设计做网站还是系统好
  • 环保网站建设维护情况报告网站图片自动下载
  • 福建省网站建设公司网站里的图片是怎么做的
  • 长丰县住房和建设局网站企业网站轮播图
  • 勒流网站建设建设网站都需要哪些资料
  • 局域网站建设基本流程wordpress 侵权