单片机第五季-第八课:STM32CubeMx和FreeRTOS
1,FreeRTOS背景介绍
RTOS简介:
实时操作系统,本用于追求实时性的嵌入式系统,典型:ucos/uclinux/vxworks;
特点:中断响应快、一般可嵌套中断、使用实地址、多任务;
(实地址:)
近年来趋势:由RTOS向IoTOS转型,典型:FreeRTOS/LiteOS/rt-thread;
(IoTOS:主要与物联网相关,涉及到各种通讯协议等)
FreeRTOS简介:
以前是第三方免费rtos,后被Amazon收购;
官网地址:
FreeRTOS官网地址
RTOS学习主要学什么?
(1)RTOS的应用开发,核心是任务创建、IPC、内存管理等;
(2)RTOS的内核开发,核心是kernel部分源码解析和port部分硬件相关;
(3)IoT开发,核心是IoTOS提供的组件和资源使用;

2,FreeRTOS源码分析
目录结构:

创建SourceInsight工程,删除无关文件,主要保留Demo和Source文件夹:
task.c文件中主要是任务的创建、删除、优先级设置等函数:
TCB(task control block):

task的本质是一个函数。
内核的几个链表:
通过链表对源码进行分析。
任务创建函数:
任务删除函数:

3,FreeRTOS的配置
配置文件:
FreeRTOSConfig.h 开发者设置的配置文件;
FreeRTOS.h 源码中的配置文件;

开启任务调度:
demo的main.c文件的主函数中

空任务的创建和调度:

Idle task中是一个死循环 for( ; ; )
注意:该函数是宏定义的形式。

4,STM32CubeMAX移植FreeRTOS
暂未完成;
(理解:看完相关视频,对RTOS有了初步的理解,其与裸机的主要区别,例如,裸机中如果要使LED闪烁,需要在while循环中点亮LED和熄灭LED之间设定一个延时,程序运行到延时是在原地打转,而RTOS中的延时是切换到了其他任务中,程序不是在原地空转)。
相关文章:
单片机第五季-第八课:STM32CubeMx和FreeRTOS
1,FreeRTOS背景介绍 RTOS简介: 实时操作系统,本用于追求实时性的嵌入式系统,典型:ucos/uclinux/vxworks; 特点:中断响应快、一般可嵌套中断、使用实地址、多任务; (实…...
【Linux】进程控制1——进程创建和进程终止
1.进程创建 1.1.再谈fork 在linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。 #include <unistd.h> pid_t fork(void);//pid_t为整形 返回值:子进程中的fork()返回0ÿ…...
计算机图形学入门16:曲线
1.曲线 曲线(Curves)在图形学中应用非常广泛,比如:相机的拍摄路径、物体的移动路径、动画曲线、矢量字体等。如下图所示,是使用曲线到矢量字体的应用,通过移动一些控制点来改变字体。 2.贝塞尔曲线 2.1 贝…...
【Ruby基础01】windows和termux中搭建Ruby开发环境
windows下环境搭建 railsinstaller官方git地址 按照文档安装git、nodejs、yarn,安装教程百度一下。railsinstall可以从release页面下载最新版本4.1.0。 安装完成如下 安装RubyMine 下载RubyMine RubyMine下载地址 安装激活 下载文件,按照里面的流程…...
2406c++,iguana动态反射
原文 iguana是一个基于编译期反射的序化库,支持从结构序化到不同数据格式. iguana可序化一个C结构到json,xml,yaml和protobuf格式.这都是通过编译期反射实现的. 现在iguana也支持了动态反射,主要特征: 1,通过对象名创建对象实例 2,取对象所有字段名 3,根据字段名取字段值 4,根…...
干货分享——AB站帮你解决独立站收款难题
目前,国内已经有抖音、拼多多和淘宝平台推出“仅退款”售后服务,无疑是加剧了原本就在疯狂打价格战的国内电商的严峻现状,使得商家不得不担心被顾客“薅羊毛”。在国内电商环境严重“内卷”的情况下,拓宽海外市场不失为一大妙计。…...
C++继承与派生
1.基本知识 类的继承是新类从已有类那里获得特性,从已有的类产生新类的过程称为类的派生; 已有类称为基类或父类,派生出的新类则称为派生类或子类; 继承的功能: (1)使得基类与派生类之间建立…...
Survival Animations
一套生存游戏的动画集,包括采集、建造、捕鱼、剥皮/鞣制、篝火等更多内容。 总动画数:89 建造/制作 30 篝火 28 饮水 3 水壶 3 觅食 2 治疗 3 空闲 1 原始捕鱼 7 剥皮 1 矛捕鱼 4 伐木 5 下载:Unity资源商店链接资源下载链接 效果图:...
Cargo 教程
Cargo 教程 1. 引言 Cargo 是 Rust 编程语言的包管理器和构建工具。它为 Rust 项目提供了依赖管理、编译和打包等功能。本教程将详细介绍 Cargo 的基本用法,帮助您快速上手 Rust 项目开发。 2. 安装 Cargo 在开始使用 Cargo 之前,您需要确保已经安装了 Rust 编程语言。Ru…...
linux中“PXE高效批量装机”
在大规模的 Linux 应用环境中,如 Web 群集、分布式计算等,服务器往往并不配备光驱设备,在这种情况下,如何为数十乃至上百台服务器裸机快速安装系统呢?传统的 USB光驱、移动硬盘等安装方法显然已经难以满足需求。 PXE …...
emm, ComfyUI的作者从Stability.AI离职了
🍖背景 今天在更新ComfyUI的过程中,看到Manager中有这样一段描述: 嗯?做了新的官方网站?然后开始新篇章? 难道说ComfyUI的作者从Stability.AI离职了? 赶紧点开链接看了下,emm&…...
Redis-五种数据结构之列表(ziplist、quicklist)
列表 文章目录 列表压缩列表-ziplistziplist 定义级联更新 快速列表-quicklistquicklistNode 定义quicklist 定义quicklist常用操作其他操作quicklist 相对于普通链表优点quick应用场景在redis 中使用quicklist 列表数据类型可以存储一组按插入顺序排序的字符串,他很…...
记一次全设备通杀未授权RCE的挖掘经历
想来上一次挖洞还在一年前的大一下,然后就一直在忙活写论文,感觉挺枯燥的(可能是自己不太适合弄学术吧QAQ),所以年初1~2月的时候,有空的时候就又会挖一挖国内外各大知名厂商的设备,拿了几份思科…...
【数据库编程-SQLite3(一)】sqlite3数据库在Windows下的配置及测试
学习分析 1、资源准备2、环境配置2.1、将资源包下载解压缩保存。2.2、在QT中创建工程,配置环境 3、测试配置3.1、 sqlite3_open函数3.2、sqlite3_close函数3.3、代码测试 1、资源准备 资源包 2、环境配置 2.1、将资源包下载解压缩保存。 解压缩得到以下文件 2.2、在QT中创建…...
YOLOv10改进 | 主干篇 | YOLOv10引入华为VanillaNet替换Backbone
1. VanillaNet介绍 1.1 摘要: 基础模型的核心是“越多越好”的理念,计算机视觉和自然语言处理领域取得的惊人成功就是例证。 然而,优化的挑战和变压器模型固有的复杂性要求范式向简单性转变。 在这项研究中,我们介绍了 VanillaNet,一种设计优雅的神经网络架构。 通过避免…...
C++ 迷宫问题
描述 定义一个二维数组 N*M ,如 5 5 数组下所示: int maze[5][5] { 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走…...
【Linux】Linux文件系统中主要文件夹列举_作用说明
在Linux系统中,文件夹(或称为目录)的组织结构是系统功能和用户数据的重要组成部分。以下是Linux系统中一些主要文件夹的列举及其作用说明: / (根目录): 是Linux文件系统的起点。通常只包含其他目录,不建议直接在其中存…...
移植案例与原理 - HDF驱动框架-驱动配置(1)
HCS(HDF Configuration Source)是HDF驱动框架的配置描述源码,内容以Key-Value为主要形式。它实现了配置代码与驱动代码解耦,便于开发者进行配置管理。应该,类似Linux DTS(Device Tree Source)设备树。 HC-GEN(HDF Configuration Generator)是…...
坚持刷题|反转链表
文章目录 题目思考实现1. 迭代方式实现链表翻转2. 递归方式实现链表翻转 Hello,大家好,我是阿月。坚持刷题,老年痴呆追不上我,今天继续链表:反转链表 题目 LCR 024. 反转链表 思考 翻转链表是一个常见的算法问题&a…...
升级和维护老旧LabVIEW程序
在升级老旧LabVIEW程序至64位环境时,需要解决兼容性、性能和稳定性等问题。本文从软件升级、硬件兼容性、程序优化、故障修复等多个角度详细分析。具体包括64位迁移注意事项、修复页面跳转崩溃、解决关闭程序后残留进程的问题,确保程序在新环境中的平稳运…...
5分钟学会AnyFlip电子书一键下载:免费PDF转换终极指南
5分钟学会AnyFlip电子书一键下载:免费PDF转换终极指南 【免费下载链接】anyflip-downloader Download anyflip books as PDF 项目地址: https://gitcode.com/gh_mirrors/an/anyflip-downloader 你是否曾经在AnyFlip上找到一本精彩的电子书,想要永…...
vue3+python基于Django的羽毛球场地预约服务管理系统设计与实现869373194
目录同行可拿货,招校园代理 ,本人源头供货商项目概述技术栈核心功能模块系统设计要点扩展功能部署方案项目技术支持源码获取详细视频演示 :同行可合作点击我获取源码->->进我个人主页-->获取博主联系方式同行可拿货,招校园代理 ,本人源头供货商 项目概述 …...
2026年SSL证书市场便宜且安全的SSL证书调研
随着互联网安全标准的不断升级,HTTPS加密已成为网站和各类数字应用的“标配”。然而,对于广大的中小企业、个人开发者以及初创团队而言,如何在控制成本的前提下,获取一张既便宜又足够安全的SSL证书,始终是一道棘手的难…...
如何用OpCore-Simplify在10分钟内完成黑苹果自动化配置:终极指南
如何用OpCore-Simplify在10分钟内完成黑苹果自动化配置:终极指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果配置而…...
Cursor AI助手功能扩展技术实现:5步实现永久免费使用的完整方案
Cursor AI助手功能扩展技术实现:5步实现永久免费使用的完整方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached…...
如何将企业微信 RPA 抽象为高可用的外部群自动化 API?
在做企业微信外部群(如跨群互动、自动化精准群发、批量建群)的自动化能力时,业界通常面临两种选型:一种是直接攻克底层协议,但面临极高的安全风控与多变协议的维护成本;另一种是基于 RPA(机器人…...
私有化视频会议平台/视频高清直播点播EasyDSS构建智慧校园音视频协作新生态
在教育数字化转型的关键阶段,智慧校园对音视频协作系统的需求,已从基础的远程沟通,升级为安全可控、体验流畅、管理智能的一体化解决方案。视频直播点播平台EasyDSS凭借技术创新与场景深耕,成为智慧校园建设的核心支撑,…...
BedRock缓存一致性协议:无瞬态状态设计与验证优化
1. BedRock缓存一致性协议概述在现代多核处理器架构中,缓存一致性协议是确保多个处理器核心能够正确访问共享内存数据的关键机制。BedRock协议作为一种创新的目录式缓存一致性解决方案,通过独特的架构设计显著降低了传统协议面临的实现复杂度和验证难度。…...
从荆楚方言保护到AIGC商业化:ElevenLabs湖北话语音项目落地的4类合规红线(含广电总局最新AI语音备案实操清单)
更多请点击: https://intelliparadigm.com 第一章:从荆楚方言保护到AIGC商业化:ElevenLabs湖北话语音项目的战略定位 湖北话作为荆楚文化的重要语音载体,长期面临传承断层、语料稀缺与数字表达缺位等挑战。ElevenLabs湖北话语音项…...
如何在Linux上安装Realtek R8125 2.5GbE网卡驱动:完整指南
如何在Linux上安装Realtek R8125 2.5GbE网卡驱动:完整指南 【免费下载链接】realtek-r8125-dkms A DKMS package for easy use of Realtek r8125 driver, which supports 2.5 GbE. 项目地址: https://gitcode.com/gh_mirrors/re/realtek-r8125-dkms 你是否正…...

