单片机和RTOS

一.单片机和RTOS区别

单片机是一种集成了处理器、内存、输入输出接口和外围设备控制器等功能的微型计算机系统。它通常用于控制简单的嵌入式系统,如家电、汽车电子、工业控制等。单片机具有低功耗、低成本和高可靠性等特点。

而RTOS(Real-Time Operating System)是一种实时操作系统,专门设计用于处理实时任务的操作系统。实时任务是指对实时性要求比较高,需要在规定的时间内完成的任务。RTOS为开发者提供了一套轻量级的任务调度、中断处理、内存管理和通信机制等,以满足实时任务的需求。

在嵌入式系统开发中,通常将RTOS和单片机结合使用。RTOS负责管理系统的实时任务,提供任务调度和中断处理等机制,而单片机则负责执行实时任务的具体操作。通过使用RTOS,开发者可以更好地管理系统资源,提高系统的稳定性和可靠性,并且更容易编写和维护实时任务代码。

!

二.什么是任务

复制代码
一段代码+运行位置+运行环境

在计算机科学中,任务(Task)指的是一个需要计算机系统执行的工作单元或操作。任务可以是一个指令序列、函数、进程、线程或任何需要计算机执行的可定义的工作。

任务是计算机系统中的基本单位,通过将大型任务分解为更小的子任务,可以简化系统的设计和管理。每个任务通常有特定的输入、处理逻辑和输出。任务可以并行执行(在多个处理器或核心上同时执行)或顺序执行(按照特定的顺序依次执行)。

在操作系统中,任务通常是指进程或线程,它们是并发执行的实体。每个任务都有自己的代码、数据和运行环境。任务调度器负责按照一定的策略决定任务的执行顺序和分配系统资源。

在实时操作系统(RTOS)中,任务的概念更加重要,因为实时任务对于按时响应和满足时间限制非常关键。RTOS通过任务管理器来分配系统资源、调度任务并确保按时执行高优先级任务。

总而言之,任务是一个计算机系统中需要执行的工作单元,它可以是指令序列、函数、进程、线程或其他定义的操作单元。任务可以并行或顺序执行,是计算机系统的基本单位之一。

三.函数运行环境

LDR 读

STR 写

R13 sp 栈

R14 LR 返回地址

R15 PC 当前指令地址

四.栈的作用

复制代码
任务切换需要保存所有寄存器,函数调用有些寄存器不需要保存,硬件中断,硬件和软件各保存一部分。

在使用STM32微控制器时,中断处理函数会自动将当前的现场信息保存到特定的栈中,这个栈被称为"中断栈"或者"内核栈"。当中断触发时,当前执行的指令会被中断处理函数替代,中断处理函数会将当前寄存器的值、标志位以及自动保存的其他相关信息保存在中断栈中。

具体来说,在STM32中,当发生中断时,处理器会自动完成以下步骤:

  1. 将当前正在执行指令的PC(程序计数器)压入中断栈。
  2. 保存当前执行指令的状态寄存器值(如CPSR/PSR)到中断栈。
  3. 保存其他相关寄存器的值,如R0-R12、LR(链接寄存器)等到中断栈。
  4. 将中断入口地址加载到PC中,开始执行中断服务程序。
  5. 中断服务程序执行完毕后,通过执行特定的中断返回指令(如"BX LR")恢复现场。
  6. 恢复保存在中断栈中的相关寄存器的值,并将程序计数器(PC)指向之前保存的PC值,从中断处继续执行被中断的程序。

需要注意的是,不同的中断可能会有不同的优先级和特定的处理程序,因此对于每个中断,中断处理函数需要按照特定的处理方式进行编程,以确保正确保存和恢复现场。

在编程时,通常可以使用CMSIS(Cortex Microcontroller Software Interface Standard)提供的相关宏和函数来简化中断处理的实现,例如NVIC_SetPriority()来设置中断优先级,NVIC_EnableIRQ()来使能中断等。

相关推荐
林内克思7 分钟前
stm32Cubmax的配置
stm32·单片机·嵌入式硬件
互联科技报20 分钟前
重振索尼复古微型电脑——计划以OrangePi CM5 作为主板升级
单片机·嵌入式硬件·电脑
天天爱吃肉82183 小时前
从零到一:深度解析汽车标定技术体系与实战策略
python·嵌入式硬件·自动化·汽车
编程墨客15 小时前
STM32F103C8T6单片机内部执行原理及启动流程详解
stm32·单片机·嵌入式硬件
qq_4112624217 小时前
整体无需占用任何硬件 UART,即可新增一条全双工软串口
单片机·嵌入式硬件
XINVRY-FPGA19 小时前
XCZU47DR-2FFVG1517I Xilinx FPGA AMD ZynqUltraScale+ RFSoC
人工智能·嵌入式硬件·fpga开发·信息与通信·信号处理·射频工程·fpga
Cyrus_柯19 小时前
单片机基础(STM32-DAY2(GPIO))
单片机·嵌入式硬件
努力的小帅20 小时前
STM32单片机_3
stm32·单片机·嵌入式硬件·学习·stm32c8t6
逼子格20 小时前
开关电源和线性电源Multisim电路仿真实验汇总——硬件工程师笔记
嵌入式硬件·硬件工程·硬件工程师·开关电源·multisim电路仿真·稳压电源·线性电源
SKYDROID云卓小助手21 小时前
无人设备遥控器之无线电频率篇
服务器·网络·单片机·嵌入式硬件·算法