使用STM32编写一个简单的RTOS:0、为什么要用RTOS

为什么要用RTOS

一、前后台系统

我们刚开始学习单片机的时候,一般都是直接在裸机上写程序。如一个main函数里面加一个while大循环,循环里面做各种任务处理,这就是前后台系统了。如下:

	//中断处理函数
void irq_handler(void)
{
//前台
//按键处理
}

int main(void)
{
	init();	//做一些初始化操作
	
	while (1) {
	//后台
	task1();	//任务1,lcd显示按键
	task2();	//任务2
	.
	.
	.
	task10();	//任务10
	}
}

应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为。前台程序通过中断来处理事件;后台程序则掌管整个嵌入式系统软、硬件资源的分配、管理以及任务的调度,是一个系统管理调度程序。这就是通常所说的前后台系统。(百科)
前后台系统的优点:
1、上手简单,
2、资源消耗少。
前后台系统的缺点:
1、实时性问题。例如在执行task2的时候,突然发生了按键事件,这个时候需要轮流执行完task2到task10,如果task2到task10之间的耗时较多,那么就不能及时的显示刚按下去的按键值。当while中的任务越复杂的时候,实时性就越差。
2、编程难度较大。由于其实时性问题,导致了我们必须保证各个任务尽量的耗时少,这就大大增加了编程的难度。需要考虑处理延时delay问题和稳定性,如果在某个task里while卡死,那么整个系统就卡死了。所以对编写程序的要求较高。

由于前后台系统的优缺点,决定了前后台比较适合用来编写任务简单的程序,对于复杂庞大的程序就不适合了。这个时候就要介绍我们的主角了,RTOS。

二、RTOS

RTOS即实时操作系统(Real Time Operating System)。实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。提供及时响应和高可靠性是其主要特点。(百科)
RTOS和前后台系统的最大区别就是支持多任务了。每个任务都是相互独立的。对于前后台系统来说,所有的任务都是能放在一个while大循环里轮流执行,而RTOS则将每个任务分隔开来。可以在各自的while里运行。例如:

void task1(void)
{
	while(1) {
	//Do something
	}
}
	
void task2(void)
{
	while(1)  {
	//Do something
	}
}

各个任务同时进行,不必像前后台那样,需要等待前一个任务跑完才能执行。当然,这并不是真正的并行执行。而是RTOS帮我们在适当的时候,非常快速的切换到另外一个任务,所以看起来就像在并行执行一样。实际上只是一个任务跑一点,cpu再切到另外一个任务执行一点。当然,如果多核的话,那就真的存在并行执行了。

RTOS的优点:

1、实时性较高,不必像前后台那样需要等待其他任务完成才能执行。
2、利于开发、开发周期短,难度降低。
3、系统稳定性好,当然需要一个好的RTOS。

RTOS的缺点:

1、开销较大,系统需要占一定的资源。
2、上手难度相对较大

RTOS刚好补足了前后台系统的不足,非常适合用于复杂庞大的程序,而且也能降低开发周期,所以,我们非常有必要学习RTOS。
RTOS有很多个,其中比较出名的是FreeRTOS、uC/OS,但是我要介绍的是RT-Thread。是国内比较有名的RTOS,当然也是开源的。之所以用RTT,并不是因为它是国产的,而是因为我们公司刚好用的就是RTT。其他的RTOS我也有接触过,但因为其严重不喜欢他们的Code style(代码风格),刚好RTT的代码风格及架构又跟linux kernel比较像,好感就这样来了。而且RTT有个功能也是我十分喜欢的–finsh控制台。
其实不是很想写这一篇的,因为我接下来主要是介绍RT-Thread的内核部分,并不从基础开始,毕竟官网上的文档现在已经十分详细了。当你需要深入学习RTT的内核时,就已经证明了你已经对RTT有了一定的了解了,所以这一篇可能有点多余。

RTT的内核介绍

RTT的内核实现的部分有:对象管理、线程管理及调度器、线程间通信管理、时钟管理及内存管理等等,当然这是每个RTOS都需要提供的,只是实现过程不同,原理基本都是一样的,所以了解了一个RTOS,基本上其他RTOS你都能快速掌握。
所以学习掌握操作系统很有必要。因为做成笔记能更深入的检测对知识的掌握情况,一边学习RTT,一边模仿写一个RTOS。额,就先不要脸的叫RTT-Mini了。所以这个笔记就诞生了,主要是记录内核部分的笔记。欢迎讨论和指正。(菜的有点虚)

Alt

一些学习资料

RTT官网文档
《cortex-M3权威指南》
《How To Design Multiple Tasks Embedded System Demo》

### 回答1: STM32 RTOS FOTA是指基于STM32系列微控制器的实时操作系统(RTOS)中实现的固件升级技术。 STM32是意法半导体公司推出的一款低功耗、性能的微控制器系列。而RTOS(Real-Time Operating System)是一种实时操作系统,采用多任务处理的方式能够应对实时性要求的应用场景。 FOTA(Firmware Over-The-Air)是通过无线方式进行的固件升级技术。传统的固件升级需要通过有线方式连接到设备进行升级操作,而FOTA技术使得固件升级可以通过无线网络进行,提供了更加便捷和灵活的升级方式。 在STM32微控制器上使用RTOS FOTA技术,可以实现以下功能: 1.固件远程升级:通过无线网络,远程对STM32微控制器上的固件进行升级,无需直接连接到设备上,方便了大规模设备的升级操作。 2.实时性RTOS的特性使得FOTA升级过程可以在设备继续运行其他任务的同时进行,不会影响设备的实时性能。 3.安全性:STM32微控制器上的RTOS FOTA技术可以使用加密算法对固件进行加密和认证,确保固件升级的安全性,防止非法入侵和病毒攻击。 4.灵活性:通过RTOS FOTA技术,可以针对不同的设备和应用场景,定制不同的固件升级策略,满足不同需求。 综上所述,STM32 RTOS FOTA是一种基于STM32微控制器的实时操作系统的固件升级技术,通过无线方式进行远程升级,具有实时性、安全性和灵活性等特点。它可以应用于各种不同的设备和领域,提供便捷、效、安全的固件升级解决方案。 ### 回答2: STM32 是一种常用的嵌入式微控制器系列,RTOS 是实时操作系统(Real-Time Operating System)的缩写,而 FOTA 是固件升级(Firmware Over-The-Air)的缩写。 STM32 RTOS FOTA 结合了STM32 微控制器、实时操作系统和固件升级技术。 首先,STM32 微控制器系列是由ST公司开发的一款强大的嵌入式微控制器。它具有低功耗、性能和丰富的外设接口,适用于各种嵌入式应用。 其次,RTOS 提供了实时任务调度、资源管理和并发控制等功能,能够满足实时性要求的应用场景。使用RTOS可以将不同任务分配给不同的优先级,确保任务之间按照预定的顺序进行执行。 最后,FOTA 技术使得固件升级可以通过无线方式进行,无需物理连接。这极大地便利了嵌入式设备在实际应用中的升级和维护。通过FOTA,嵌入式系统可以在不中断正常运行的情况下完成固件升级,大大提了设备的可靠性和业务的连续性。 在STM32 RTOS FOTA中,RTOS可以提供任务管理和调度的能力,使得固件升级过程不会中断其他任务的执行。同时,STM32微控制器的强大性能和丰富的外设接口,与FOTA技术相结合,为嵌入式设备提供了更加便捷的固件升级方式。 综上所述,STM32 RTOS FOTA 是将STM32 微控制器、实时操作系统和固件升级技术结合在一起的一种解决方案。它能够提供实时任务调度、资源管理、并发控制和无线固件升级等功能,适用于各种嵌入式应用场景,提了设备的可靠性和可维护性。 ### 回答3: STM32是意法半导体公司推出的一款嵌入式系统开发板,具有强大的性能和可靠性。RTOS是实时操作系统的简称,能够专门处理实时任务的需求。FOTA是指远程固件更新,它允许通过云端或网络升级设备的固件,从而提供更好的用户体验和功能。 在STM32使用RTOS可以提供更的可靠性和效率。RTOS可以将系统分为多个任务,并通过合理的调度机制使这些任务并行执行,避免任务之间的冲突和竞争。对于实时任务,RTOS可以保证它们在预定的时间内完成,确保系统的实时性和稳定性。 而通过FOTA可以实现远程固件的更新。在嵌入式系统中,由于设备通常分布在不同的地方且难以访问,通过传统的手动固件更新方式是不现实的。而FOTA可以通过远程的方式将新的固件推送到设备上,从而实现固件的更新,提供更好的功能和性能。 在STM32中结合使用RTOS和FOTA,可以实现度自主且稳定的嵌入式系统。通过使用RTOS,系统可以效地管理任务和资源,保证系统的实时性和可靠性。而FOTA可以远程更新固件,提供更好的用户体验和功能。这种结合可以使系统更加灵活和可靠,满足不同应用场景的需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值