2020-12-02

1、FreeRTOS原理

作为一个轻量级的操作系统,FreeRTOS提供的功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。FreeRTOS内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU总是让处于就绪态的、优先级最高的任务先运行。FreeRT0S内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下,同一优先级的任务共享CPU的使用时间。

 

 

2、上机实验作业内容

学习FreeRTOS原理,在STM32下完成一个基于FreeRTOS的多任务程序,执行3个周期性task,具体任务不限,但建议如下:task1,每间隔500ms闪烁(变化)一次LED;task2,每间隔2000ms,向串口发送一次指令数据“helloworld!";task3,每间隔5000ms,从AHT20采集一次温湿度数据(不考虑硬件情况,仅写出整个多任务框架模拟代码)

 

 

3、FreeRTOS移植

本人使用的是野火SRM32F103指南者的开发板,有关的资料、源程序代码和软件皆来自野火的官网。

野火STM32F103指南者开发板资料

在这里插入图片描述

在这里插入图片描述
我个人是直接使用的野火的官方教程中的例程源码

在这里插入图片描述
注意要将该文件夹放在无中文目录中,否则工程编译可能会出现问题。

 

直接打开该工程
在这里插入图片描述
在这里插入图片描述
在该代码上修改部分即可(由于task3暂时尚不能硬件实现,故可忽略,只写两个task)

 

添加任务2
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

完成代码修改后进如下等操作
(本人使用的是ST-Link连接线,需要预先安装其驱动程序)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

接着进行编译等操作
在这里插入图片描述

 

实验结果如下所示在这里插入图片描述

在这里插入图片描述

输入stop stm32!以停止程序
在这里插入图片描述

4、小结

在本次实验过程中遇到了一些问题,如出现Flash Download failed - “Cortex-M3”
在通过网络寻求帮助的前提下成功解决了问题

Flash Download failed - "Cortex-M3"解决方法

FreeRTOS断言“freertos\portable\rvds\arm_cm3\port.c,244“的解决方法

5、参考资料

STM32的FreeRTOS移植

keil下的FreeRtos多任务程序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值