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

  • 任务创建

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

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

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

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

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

申请内存

内存初始化

  • 任务调度

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

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

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

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

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

相关推荐
BlackWolfSky12 分钟前
鸿蒙中级课程笔记2—状态管理V2—@Computed装饰器:计算属性
笔记·华为·harmonyos
tobias.b21 分钟前
408真题解析-2010-12-计组-程序执行时间
单片机·嵌入式硬件·fpga开发·计算机考研·408真题解析
凉、介30 分钟前
ARM 架构中的内存屏障
arm开发·笔记·学习·架构·操作系统·嵌入式
List<String> error_P41 分钟前
独立看门狗IWDG原理详解
stm32·单片机·嵌入式硬件·定时器
王然-HUDDM44 分钟前
技术领跑:HUDDM-7D系统L4级功能安全预研验证
人工智能·嵌入式硬件·安全·车载系统·汽车
shansz20201 小时前
CDC虚拟串口与硬件串口传输速度的对比测试
单片机·嵌入式硬件
一个云朵1 小时前
【江协科技】KEIL如何下载离线支持包
单片机·嵌入式硬件
云山工作室2 小时前
基于单片机的居家智能音箱系统(论文+源码)
单片机·嵌入式硬件·毕业设计·毕设·智能音箱
Pith_2 小时前
模式识别与机器学习复习笔记(下-深度学习篇)
笔记·深度学习·机器学习
BlackWolfSky2 小时前
鸿蒙中级课程笔记2—状态管理V2—@Local
笔记·华为·harmonyos