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

  • 任务创建

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

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

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

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

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

申请内存

内存初始化

  • 任务调度

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

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

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

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

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

相关推荐
创思通信1 分钟前
STM32L151RCT6 BC20 采集温湿度DHT11 采集GPS定位 和ADC发送到最新版本ONENET物联网开放平台
stm32·嵌入式硬件·物联网
__万波__2 分钟前
STM32建立完全空白的工程
stm32·单片机·嵌入式硬件
松涛和鸣5 分钟前
51、51单片机
c语言·网络·单片机·嵌入式硬件·tcp/ip·51单片机
hit56实验室17 分钟前
自动驾驶相关
笔记
张海森-16882027 分钟前
608_demo例子开红外及ir_cut是怎么做的呢
单片机
LongRunning28 分钟前
【IDE】KEIL IAR GCC 编译信息
单片机
Naiva34 分钟前
中微1000w储能逆变控制方案
笔记·方案·储能·逆变
丝斯201137 分钟前
AI学习笔记整理(45)——大模型数据读取技术与模型部署
人工智能·笔记·学习
你要飞1 小时前
考研线代第三课:向量组
笔记·线性代数·考研·矩阵
Lv11770081 小时前
Visual Studio中的正则表达式
ide·笔记·正则表达式·c#·visual studio