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

  • 任务创建

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

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

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

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

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

申请内存

内存初始化

  • 任务调度

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

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

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

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

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

相关推荐
三水不滴1 小时前
Redis缓存更新策略
数据库·经验分享·redis·笔记·后端·缓存
Q_21932764551 小时前
基于单片机的个性化服装尺寸红外 测量仪的设计
单片机·嵌入式硬件
Polanda。2 小时前
定时器-PWM参数测量实验
stm32·单片机·嵌入式硬件
恶魔泡泡糖3 小时前
51单片机串口通信
c语言·单片机·嵌入式硬件·51单片机
wotaifuzao3 小时前
【Keil 5安装】keil 5最新版本安装+环境配置+下载百度资源分享(安装包,注册机等)
stm32·单片机·嵌入式硬件·mcu·学习·keil5·最新keil
ziqi5223 小时前
第二十四天笔记
笔记
染予3 小时前
8.AD软件操作:绘制一个完整的原理图需要进行哪些操作?
嵌入式硬件
马猴烧酒.3 小时前
【JAVA数据传输】Java 数据传输与转换详解笔记
java·数据库·笔记·tomcat·mybatis
ziqi5224 小时前
第二十五天笔记
前端·chrome·笔记
方芯半导体4 小时前
EtherCAT “通信 + 控制“ 的全国产化控制方案,ESC芯片(FCE1323)与国产MCU芯片功能板解析
xml·网络·单片机·嵌入式硬件·网络协议·机器人·自动化