单片机第五季-第八课:STM32CubeMx和FreeRTOS

作者 : admin 本文共801个字,预计阅读时间需要3分钟 发布时间: 2024-06-17 共1人阅读

1,FreeRTOS背景介绍

RTOS简介:

实时操作系统,本用于追求实时性的嵌入式系统,典型:ucos/uclinux/vxworks;

特点:中断响应快、一般可嵌套中断、使用实地址、多任务;

(实地址:)

近年来趋势:由RTOS向IoTOS转型,典型:FreeRTOS/LiteOS/rt-thread;

(IoTOS:主要与物联网相关,涉及到各种通讯协议等)

FreeRTOS简介:

以前是第三方免费rtos,后被Amazon收购;

官网地址:

FreeRTOS官网地址

单片机第五季-第八课:STM32CubeMx和FreeRTOS插图

RTOS学习主要学什么?

(1)RTOS的应用开发,核心是任务创建、IPC、内存管理等;

(2)RTOS的内核开发,核心是kernel部分源码解析和port部分硬件相关;

(3)IoT开发,核心是IoTOS提供的组件和资源使用;

单片机第五季-第八课:STM32CubeMx和FreeRTOS插图(1)

 2,FreeRTOS源码分析

目录结构:

单片机第五季-第八课:STM32CubeMx和FreeRTOS插图(2)

创建SourceInsight工程,删除无关文件,主要保留Demo和Source文件夹:

单片机第五季-第八课:STM32CubeMx和FreeRTOS插图(3) task.c文件中主要是任务的创建、删除、优先级设置等函数:单片机第五季-第八课:STM32CubeMx和FreeRTOS插图(4)

 TCB(task control block):

单片机第五季-第八课:STM32CubeMx和FreeRTOS插图(5)

task的本质是一个函数。

内核的几个链表:

单片机第五季-第八课:STM32CubeMx和FreeRTOS插图(6)通过链表对源码进行分析。

任务创建函数:

单片机第五季-第八课:STM32CubeMx和FreeRTOS插图(7) 任务删除函数:

单片机第五季-第八课:STM32CubeMx和FreeRTOS插图(8)

3,FreeRTOS的配置 

配置文件:

FreeRTOSConfig.h  开发者设置的配置文件;

FreeRTOS.h   源码中的配置文件;

单片机第五季-第八课:STM32CubeMx和FreeRTOS插图(9)

开启任务调度:

demo的main.c文件的主函数中

单片机第五季-第八课:STM32CubeMx和FreeRTOS插图(10)

空任务的创建和调度:

单片机第五季-第八课:STM32CubeMx和FreeRTOS插图(11)

Idle task中是一个死循环 for( ; ; ) 

注意:该函数是宏定义的形式。

单片机第五季-第八课:STM32CubeMx和FreeRTOS插图(12)

单片机第五季-第八课:STM32CubeMx和FreeRTOS插图(13)4,STM32CubeMAX移植FreeRTOS 

暂未完成;

(理解:看完相关视频,对RTOS有了初步的理解,其与裸机的主要区别,例如,裸机中如果要使LED闪烁,需要在while循环中点亮LED和熄灭LED之间设定一个延时,程序运行到延时是在原地打转,而RTOS中的延时是切换到了其他任务中,程序不是在原地空转)。

本站无任何商业行为
个人在线分享-虚灵IT资料分享 » 单片机第五季-第八课:STM32CubeMx和FreeRTOS
E-->