目录

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

  • 任务创建

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

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

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

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

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

申请内存

内存初始化

  • 任务调度

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

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

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

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

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

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
大白的编程日记.10 分钟前
【Linux学习笔记】初识进程概念和进程PCB
linux·笔记·学习
V---scwantop---信25 分钟前
时尚优雅奢华品牌包装徽标设计衬线英文字体安装包 Kagea – Luxury Women Ligature Font
笔记·字体
V---scwantop---信38 分钟前
复古未来主义屏幕辉光像素化显示器反乌托邦效果PS(PSD)设计模板样机 Analog Retro-Futuristic Monitor Effect
笔记
DreamBoy@1 小时前
【408--考研复习笔记】计算机网络----知识点速览
笔记·考研
想你依然心痛1 小时前
Spark大数据分析与实战笔记(第四章 Spark SQL结构化数据文件处理-03)
笔记·数据分析·spark
郭涤生2 小时前
第十三章:持久化存储_《凤凰架构:构建可靠的大型分布式系统》
笔记·分布式·架构·系统架构
郭涤生2 小时前
第二章:访问远程服务_《凤凰架构:构建可靠的大型分布式系统》
笔记·架构·系统架构
promising-w2 小时前
【TI MSPM0】UART学习
嵌入式硬件·学习·ti 单片机
郭涤生2 小时前
Chapter 4: Processor Architecture_《Computer Systems A Programmer’s Perspective》
笔记·系统架构
damo王3 小时前
单片机实现多线程的方法汇总
单片机·嵌入式硬件