Freertos学习笔记

news2024/11/24 19:30:32

文章目录

            • Freertos移植
            • TCB控制块
            • 中断管理 (内部异常和外部中断)
            • 同步互斥与通信
            • 消息队列:
            • 邮箱:
            • 信号量:
            • 互斥量:
            • 事件组:
            • 任务通知:

Freertos移植

在这里插入图片描述

  • 其核心文件为,tasks.c、timers.c、queue.c、event_groups.c、croutine.c、list.c。源码兼顾了很多平台,但是我们可以删除一些不用的平台以及例程等,只保留我们要的。
    比如RVDS/ARM_CM3,这表示cotexM3架构再RVDS或Keil工具上的移植文件(比如下图中的port.c、portmacro.h)
    在编程过程中的大部分宏配置都在FreeRTOSConfig.h这个配置文件(调度、优先级、空闲任务等)

  • 任务切换基础
    1、任务间的切换,是利用tick中断实现的(关于这个时间片轮转的时间通过上面提到过的配置文件设置)
    2、stm32+freertos之所以要用到两套timebase(一是freertos的心跳tick (os_tick)
    3、防止在高优先级(优先级高于systick)中断服务中调用HAL_Delay(),导致中断服务忙等待,这样任何优先级低于该中断的中断都得不到服务,当然也包括os的全部调度.

    BaseType_t xTaskCreate(TaskFunction_t pxTaskCode,//函数指针
    const char* const pcName,//任务名字
    const configSTACK_DEPTH usStackDepth,//任务栈大小
    void * const pv Parameters,//传入任务的参数,通常是指的是任务的参数
    UbaseType_t uxPriority,//优先级
    TaskHandle_t * const pxCreatedTask);//任务函数句柄
    上面是动态创建任务,而静态创建任务是需要自己分配任务堆栈以及TCB控制块大小
    Void vTaskDelete(TaskHandle_t xTaskToDelete);//任务句柄
    Void 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1024317.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亚马逊攀岩安全带ASTM F1772测试办理

本政策适用于主要用于攀岩或登山活动的安全带。攀岩安全带是一种装备,可穿戴在攀岩者或登山者的腰部和大腿处。攀岩安全带为绳子提供了一个连接点,并提供一种手段,以便在攀登、休息、绕绳下降或跌落的过程中为攀登者身体提供支撑。本政策涵盖…

整理mongodb文档:副本集一

个人博客 整理mongodb文档:副本集一 本文讲解较为粗糙,对于没有后台开发经验的人员,建议配合官网了解下相关概念。个人博客,日常求关注 文章概叙 文章会先花费几分钟讲解下关于垂直缩放以及水平缩放的概念,以方便大家对副本集…

Qt5开发及实例V2.0-第五章Qt主窗体

Qt5开发及实例V2.0-第五章Qt主窗体 第5章 Qt 5主窗体5.1.1 基本元素5.1.2 【综合实例】:文本编辑器5.1.3 菜单与工具栏的实现 5.2 Qt 5文件操作功能5.2.1 新建文件5.2.2 打开文件5.2.3 打印文件 5.3 Qt 5图像坐标变换5.3.1 缩放功能5.3.2 旋转功能5.3.3 镜像功能 5.…

适用于 Linux 的 Windows 子系统获得新的“镜像”网络模式

Microsoft 发布了 Windows Subsystem for Linux (WSL) 2.0.0,其中包含一组新的可选实验功能,包括新的网络模式以及自动内存和磁盘大小清理。 首先,新添加的“自动内存回收”功能通过回收缓存内存来动态减少 WSL 虚拟机 (VM) 的内存占用。 此…

Git学习笔记8

Gitlab: Gitlab是利用Ruby on Rails 一个开源的版本管理系统,实现一个自托管的git项目仓库,可通过web界面进行访问公开或私有的项目。 Gitlab安装: 安装之前,将虚拟机的内存改成了4个G。内存如果太小,会有…

Zipping

Zipping 信息收集端口扫描目录扫描webbanner信息收集 漏洞利用空字节绕过---->失败sqlI-preg_match bypass反弹shell 稳定维持 提权-共享库漏洞 参考:https://rouvin.gitbook.io/ibreakstuff/writeups/htb-season-2/zipping#sudo-privileges-greater-than-stock-…

基于Python开发的图片批量处理器(源码+可执行程序+程序配置说明书+程序使用说明书)

一、项目简介 本项目是一套基于Python开发的图片批量处理器,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含:项目源码、项目文档等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,…

软考高级架构师下篇-16通信系统架构设计理论与实践

目录 1. 引言2. 通信系统网络架构3. 网络构建关键技术4. 网络构建5. 前文回顾1. 引言 此章节主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本节知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中…

SpringSecurity 权限管理的实现

文章目录 前言权限管理的实现权限校验的原理FilterSecurityInterceptorAccessDescisionManagerAffirmativeBasedConsensusBasedUnanimousBased AccessDecisionVoterWebExpressionVoterAuthenticatedVoterPreInvocationAuthorizationAdviceVoterRoleVoterRoleHierarchyVoter 前言…

HEXO 基本使用

1 新建、编辑并预览文章 1. 新建文章 hexo new [layout] title # 或 hexo n [layout] title创建文章前要先选定模板,在hexo中也叫做布局。hexo支持三种布局(layout):post(默认)、draft、page。我们先介绍如何使用已有布局…

【Unity 实用工具篇】✨ | 编辑器扩展插件 Odin Inspector,进阶功能学习

前言【Unity 实用工具篇】✨ | 编辑器扩展插件 Odin,进阶功能学习一、Odin Attributes Overview 特性篇1.1 提示信息1.1.1 Title、InfoBox1.1.2 DetailedInfoBox1.2 各类限制1.2.1 限制数值范围1.2.2 限制只读1.2.3 限制属性搜索范围1.4 Required 限制必须赋值1.3 数值变化时触…

我们感知的内容是由大脑最支持的假设决定的吗?

某种意义上讲,我们从未直接体验到感觉信号本身,而是通过对这些信号的解读和处理来感知和理解外界。 感觉信号是由我们的感官系统接收到的来自外部世界的刺激所产生的物理信号。例如,视觉感觉信号由我们的眼睛接收光线并将其转化为神经脉冲&am…

爬虫获取一个网站内所有子页面的内容

上一篇介绍了如何爬取一个页面内的所有指定内容,本篇讲的是爬去这个网站下所有子页面的所有指定的内容。 可能有人会说需要的内容复制粘贴,或者直接f12获取需要的文件下载地址一个一个下载就行了,但是如下图十几个一级几十个二级一百多个疾病…

STM32-无人机-电机-定时器基础知识与PWM输出原理

电机控制基础——定时器基础知识与PWM输出原理 - 掘金单片机开发中,电机的控制与定时器有着密不可分的关系,无论是直流电机,步进电机还是舵机,都会用到定时器,比如最常用的有刷直流电机,会使用定时器产生PW…

「UG/NX」Block UI 指定方位SpecifyOrientation

✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#

怎么打开mysql题库练习系统

在正式考试的时候,大题上方会有一个启动的按钮,非常明显。 我在考试之前买了题库,但是一直没找到怎么进入mysql (指的不是平时自己做项目的入口,是考试系统仿真) 其实是要下载一个软件: 就在…

大数据与云计算实验一

检查是否开启 sudo service docker status 开启服务 sudo service docker start 运行服务 sudo docker run -itd -p 8080:80 nginx 查询ID docker ps -all 进入容器shell sudo docker exec -it <容器ID或容器名称> /bin/bash 找到/usr/share/nginx/html/index.…

【小沐学CAD】虚拟仿真开发工具:GL Studio

文章目录 1、简介2、软件功能3、应用行业3.1 航空3.2 汽车3.3 防御3.4 工业3.5 电力与能源3.6 医疗3.7 空间3.8 科技 结语 1、简介 https://disti.com/gl-studio/ https://ww2.mathworks.cn/products/connections/product_detail/gl-studio.html DiSTI 是 HMI 软件、虚拟驾驶舱…

zabbix自定义key

用户参数&#xff08;zabbix-agent&#xff09; 介绍 自定义用户参数&#xff0c;也就是自定义key&#xff0c;有时&#xff0c;你可能想要运行一个代理检查&#xff0c;而不是Zabbix的预定义&#xff0c;你可以编写一个命令来检索需要的数据&#xff0c;并将其包含在代理配置…

大模型如何赋能智能客服

2022年&#xff0c;大模型技术的出色表现让人们瞩目。随着深度学习和大数据技术的发展&#xff0c;大模型在很多领域的应用已经成为可能。许多公司开始探索如何将大模型技术应用于自己的业务中&#xff0c;智能客服也不例外。 智能客服是现代企业中非常重要的一部分&#xff0…