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

相关推荐
丁满与彭彭8 分钟前
嵌入式学习笔记-MCU阶段-DAY01
笔记·单片机·学习
海海不掉头发1 小时前
【计算机组成原理】-CPU章节学习篇—笔记随笔
笔记·单片机·学习·考研·计算机组成原理
趣多多代言人1 小时前
从零开始手写嵌入式实时操作系统
开发语言·arm开发·单片机·嵌入式硬件·面试·职场和发展·嵌入式
h137286978692 小时前
Type-C PD快充协议智能芯片S312L详解
嵌入式硬件
不想学习\??!4 小时前
STM32-外部中断
stm32·单片机·嵌入式硬件
不想学习\??!4 小时前
STM32-定时器
stm32·单片机·嵌入式硬件
LIN-JUN-WEI5 小时前
[ESP32]VSCODE+ESP-IDF环境搭建及blink例程尝试(win10 win11均配置成功)
c语言·开发语言·ide·vscode·单片机·学习·编辑器
LS_learner5 小时前
嵌入式系统中实现串口重定向
嵌入式硬件
景彡先生6 小时前
STM32中SPI协议详解
stm32·单片机·嵌入式硬件
趣多多代言人6 小时前
嵌入式面试八股文100题(二)
单片机·嵌入式硬件