FreeRTOS

1 裸机与RTOS介绍

1.1 裸机与RTOS的区别

1.2 裸机与RTOS的特点

裸机:裸机又称为前后台系统,前台系统指的是终端服务函数,后台系统指的是大循环,即应用程序。

RTOS全称为:Real Time OS,即实时操作系统,强调的是实时性。

1.2 RTOS系统

RTOS全称为:Real Time OS,即实时操作系统,强调的是实时性。

实时操作系统硬实时要求在规定时间内必须完成操作,硬实时系统不允许超时。
软实时软实时系统中处理过程超时的后果没那么严格。

在实时操作系统中,我们可以把要实现的功能划分为多个任务,每个任务负责实现其中的一部分,每个任务都是一个很简单的程序,通常是一个死循环。

RTOS操作系统:FreeRTOS、UCOS、RTX、RT-Thread、DJYOS等。

RTOS操作系统的核心在于:实时内核(可剥夺型内核)。

可剥夺型内核:顾名思义就是可以剥夺其他任务的CPU使用权,它总是运行就绪任务中的优先级最高的那个任务。

RTOS的内核负责管理所有的任务,内核决定了运行哪个任务,何时停止当前任务切换到其他任务,这个是内核的多任务管理能力

2 FreeRTOS系统简介

2.1 FreeRTOS系统简介

FreeRTOS是一个可裁剪、可剥夺型的多任务内核,而且没有任务数限制。FreeRTOS提供了实时操作系统所需要的所有功能,包括资源管理、同步、任内务通信等。FreeRTOS使用C语言和汇编共同编写,只有极少数与处理器相关的部分代码采用汇编。

3 FreeRTOS移植

准备工作:准备一个简单的程序,如流水灯。开发板:STM32F7系列

工具:参考手册使用的是KEIL,我用的是IAR。在移植过程中有点区别。

具体步骤参考:正点原子的STM32F767 FreeRTOS开发手册第二章 FreeRTOS移植

3.1 IAR与KEIL在移植过程中的区别:(以下是IAR,参考手册是KEIL)

3.1.1 添加RTOS源码

保留IAR文件夹,添加port.c的时候记得选IAR中的.c文件。添加头文件的时候也是IAR里的。

3.1.2 在IAR中移植发生的错误

(1) 添加FreeRTOSConfig.h文件(参考手册)

(2) 发生vApplicationTickHook错误

解决方案

(3)发生vAssertCalled错误

解决方案

(4)发生SysTick_Handler错误

解决方案

(5)vApplicationMallocFailedHook错误

解决方案

(6) PendSV_Handler/SVC_Handler错误

解决方案

 

(7)no definition "vPortEnableVFP"

解决方案

在工程里面加入这个.s文件

(8)Failed to open #include file ‘FreeRTOSConfig.h’

解决方案

3.2 移植完成但是灯不闪

可能是没有修改stm32f7xx_it.c文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值