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

单片机第五季-第八课: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中的延时是切换到了其他任务中,程序不是在原地空转)。

相关文章:

  • AWS无服务器 应用程序开发—第十三章 小结2
  • 基于CentOS Stream 9平台 安装/卸载 Redis7.0.15
  • 增强大型语言模型(LLM)可访问性:深入探究在单块AMD GPU上通过QLoRA微调Llama 2的过程
  • 学习记录:VS2019+OpenCV3.4.1实现SURF库函数的调用
  • 手机照片免费数据恢复软件EasyRecovery2024免费版下载
  • C 语言连接MySQL 数据库
  • 【面试干货】String、StringBuilder、StringBuffer 的区别
  • 双指针【1】两数之和基础版 归并排序
  • 【LC刷题】DAY09:232 225 20 1047
  • 考研计组chap3存储系统
  • Python爬虫实现“自动重试”机制的方法(2)
  • uniapp 展示地图,并获取当前位置信息(精确位置)
  • 《web应用技术》第十一次作业
  • Postman接口测试工具详解
  • 【逻辑回归】和【线性回归】的区别和联系-九五小庞
  • 3.7、@ResponseBody 和 @RestController
  • android 一些 utils
  • ComponentOne 2017 V2版本正式发布
  • gf框架之分页模块(五) - 自定义分页
  • Gradle 5.0 正式版发布
  • HTTP中的ETag在移动客户端的应用
  • iOS小技巧之UIImagePickerController实现头像选择
  • JavaScript DOM 10 - 滚动
  • k8s如何管理Pod
  • NSTimer学习笔记
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Redux 中间件分析
  • Selenium实战教程系列(二)---元素定位
  • SQLServer之创建显式事务
  • ubuntu 下nginx安装 并支持https协议
  • uva 10370 Above Average
  • Vue.js-Day01
  • vue数据传递--我有特殊的实现技巧
  • 测试如何在敏捷团队中工作?
  • 聊聊flink的TableFactory
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 正则表达式小结
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • ​ubuntu下安装kvm虚拟机
  • # 计算机视觉入门
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (LLM) 很笨
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (solr系列:一)使用tomcat部署solr服务
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (zt)最盛行的警世狂言(爆笑)
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (南京观海微电子)——I3C协议介绍
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (学习总结16)C++模版2
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)程序员疫苗:代码注入
  • *ST京蓝入股力合节能 着力绿色智慧城市服务