15-单片机烧录FreeTOS操作系统后,程序的执行流程

  • 任务创建

1、在系统上电后,第一个执行的是启动文件由汇编语言编写的复位函数

通过复位函数来初始化系统的时钟,然后再执行__main,初始化系统的堆和栈,然后跳转到main函数

2、在main函数中可以直接进行任务创建操作

因为在FreeRTOS中会自动帮助我们做一些初始化的工作,比如内存堆的初始化,在FreeRTOS中创建任务的时候,系统会自动帮助我们完成。

例如,动态创建任务的函数中就有

申请内存

内存初始化

  • 任务调度

任务创建好后,就需要开启任务调度器。因为创建只是把任务添加到系统中,还没有去实现调度,并且没有实现空闲任务和定时器任务,这些都是在开启任务调度函数的时候实现的。

在 Cortex-M3 架构中,FreeRTOS 为了任务启动和任务切换使用了三个异常:SVC、PendSV 和 SysTick:

SVC(系统服务调用,亦简称系统调用)用于任务启动。

PendSV(可挂起系统调用)用于完成任务切换。

SysTick 用于产生系统节拍时钟,提供一个时间片。

相关推荐
执行部之龙几秒前
JS-WebAPIs 学习笔记
前端·javascript·笔记·学习
计算机网恋6 分钟前
思源笔记使用S3同步(阿里云OSS)
数据库·笔记·阿里云
feiante17 分钟前
67、abb_ros2(PickNikRobotics)学习笔记(2)--- 显示机器人
笔记·学习·机器人
LCMICRO-1331084774622 分钟前
长芯微LD8574完全P2P替代PCF8574,主要用于扩展通用输入输出端口(GPIO)
单片机·嵌入式硬件·fpga开发·硬件工程·dsp开发
岑梓铭27 分钟前
(YOLO前置知识点)神经网络、Pytorch、卷积神经网络CNN
人工智能·pytorch·笔记·深度学习·神经网络·yolo·计算机视觉
am心28 分钟前
学习笔记-添加购物车&清空购物车
笔记·学习
时空自由民.1 小时前
I3C协议介绍
汇编·stm32·单片机
__万波__1 小时前
STM32L475基于HAL库封装时钟管理模块
stm32·单片机·嵌入式硬件
菜鸟江多多1 小时前
【国内首款STM32 Zephyr RTOS学习套件】
stm32·嵌入式硬件·学习
国科安芯1 小时前
ASM1042型CANFD接口芯片的主要特性及多节点连接方式解析
单片机·嵌入式硬件·性能优化·架构·安全性测试