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

相关推荐
悠哉悠哉愿意9 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
Lester_11019 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元9 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-187366133979 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315209 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
古译汉书9 天前
【IoT死磕系列】Day 7:只传8字节怎么控机械臂?学习工业控制 CANopen 的“对象字典”(附企业级源码)
数据结构·stm32·物联网·http
Alaso_shuang9 天前
STM32 核心输入、输出模式
stm32·单片机·嵌入式硬件
脚后跟10 天前
AI助力嵌入式物联网项目全栈开发
嵌入式硬件·物联网·ai编程
2501_9181269110 天前
stm32死锁是怎么实现的
stm32·单片机·嵌入式硬件·学习·个人开发
z203483152010 天前
STM32F103系列单片机定时器介绍(一)
stm32·单片机