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

  • 任务创建

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

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

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

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

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

申请内存

内存初始化

  • 任务调度

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

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

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

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

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

相关推荐
我送炭你添花2 分钟前
工业触摸屏:PCAP(投影电容式)触摸屏控制器选型推荐(工业级,2025-2026主流)
嵌入式硬件·自动化
wdfk_prog26 分钟前
[Linux]学习笔记系列 -- [drivers][dma]stm32-dma
linux·笔记·学习
BlackWolfSky28 分钟前
鸿蒙中级课程笔记13—应用/元服务上架
笔记·华为·harmonyos
mango_mangojuice44 分钟前
Linux学习笔记(角色,权限管理)1.21
linux·笔记·学习
来自晴朗的明天1 小时前
2、NMOS 电源防反接电路
单片机·嵌入式硬件·硬件工程
方见华Richard2 小时前
整数阶时间重参数化:基于自适应豪斯多夫维数的偏微分方程正则化新框架
人工智能·笔记·交互·原型模式·空间计算
舟舟亢亢2 小时前
JVM复习笔记——下
java·jvm·笔记
量子-Alex2 小时前
【大模型课程笔记】斯坦福大学CS336 课程环境配置与讲座生成完整指南
人工智能·笔记
良许Linux2 小时前
DSP的选型和应用
后端·stm32·单片机·程序员·嵌入式
土拨鼠烧电路2 小时前
笔记04:价值链深度游:追踪一包纸巾的“数字一生”
笔记