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

  • 任务创建

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

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

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

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

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

申请内存

内存初始化

  • 任务调度

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

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

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

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

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

相关推荐
chouchuang5 小时前
day-030-综合练习-笔记管理器
开发语言·笔记·python
炸膛坦客5 小时前
单片机开发工具篇:(九)MCU 芯片包的安装
单片机·嵌入式硬件
岑梓铭9 小时前
《考研408数据结构》第六章(6.3 图的遍历)复习笔记
数据结构·笔记·考研··拓扑排序·408
he_wen_jian9 小时前
【无标题】
笔记
灵性(๑>ڡ<)☆10 小时前
Java学习笔记--面向对象高级(多态)
笔记·学习
智者知已应修善业10 小时前
【51单片机实现初始化数码管不显示按启动从0秒计时到60按暂停一次显示当前秒按2次恢复原始状态】2024-6-11
c语言·c++·经验分享·笔记·嵌入式硬件·算法·51单片机
AA陈超10 小时前
003 XiYou 西游 — P0 阶段实施计划
c++·笔记·学习·ue5
电气_空空11 小时前
基于LabVIEW的数据采集系统设计与实现
单片机·嵌入式硬件·labview
沪上企服通12 小时前
上海地区代账服务供给侧的五种架构形态:从 pipeline SLA 到领域深度的选型笔记
笔记·架构
caimouse12 小时前
ReactOS BootCD 光盘布局完整深度分析
单片机·reactos