搜索

[活动专区] 【AutoChips MCU评测报告】Part5:FreeRTOS详细讲解与修改任务

[复制链接]
79|7
 楼主 | 2020-11-16 10:38 | 显示全部楼层 |阅读模式
1.介绍
这是这次测评的最后一篇帖子,同时结合了之前测评的一些内容,算是一个总结吧,至于为什么要讲FreeRTOS呢,因为FreeRTOS太好用了,且咱们的芯片也有例程,那么用起来是比较容易的,这次一样有修改部分,所以大家要耐心看完,你也会修改FreeRTOS了,不过想要搞懂FreeRTOS那这篇帖子没有涉及,大家可以去查询别的资料,这篇帖子主要讲的是AutoChips的FreeRTOS和修改功能。
2.下载FreeRTOS例程
AutoChips官网上提供FreeRTOS例程,那么就先去官网下载例程。还是和之前一样的地址,不清楚的可以去看我之前的帖子,具体下载例程如下图1。
1.png

图1

下载完之后的压缩包闻静如下图2。
2.png

图2

解压完成之后打开工程,我这里选择的是Keil工程(图3)。
3.png

图3

可以看到程序中的简介,这里使用了CAN总线进行通信,但是我这边没有CAN总线的转换器,所以只能看到CAN总线的发送和FreeRTOS的CPU使用率,图4。
4.png

图4

这里我看了一下主程序,有一句话“周期需要小于RTOS TICK周期,这样计算的RunTime才准确”(图5),这句话的意思是,程序通过TIM计算使用率,那么TIM的频率要高于RTOS的频率,就如同人的眼睛一般看到25HZ的视频才不会觉得卡顿,所以一般视频不会低于25HZ。
5.png

图5

然后简单的来看一下任务的创建(图6),这里有任务的名称,任务的栈大小,以及任务的优先级,任务句柄等初始化。
6.png

图6

然后将程序下载进开发板,UART2输出的内容如下图7,可以看到有任务名,运行计时(所占用的时间),使用率(运行计时占总运行时间的比例)。还有任务的状态、优先级、剩余栈和任务序号。
7.png

图7

3.修改CAN为UART1
由于没有CAN,所以需要修改CAN的接口为UART1,这样就可以显示出来了。
先使用AutoGen Studio生成UART1的例程,这里就简单带过,需要详细生成教程可以看我的上一篇帖子【Part4:AutoGen Studio的详细使用】,具体配置如下图8。
8.png

图8

然后就是代码生成的设置,基本每次都需要这么设置(图9),“外设初始化以成对的.c、.h形式生成”这个勾一定要勾上。
9.png

图9

最后附上时钟的配置,大家自行对比一下。
10.png

图10

打开生成的代码工程,可以看到如下图11所示,这里我们需要拷贝uart的相关文件。
11.png

图11

进入生成代码的路径,拷贝.c和.h文件,路径如下图12和图13。
12.png

图12

13.png

图13

拷贝到FreeRTOS的路径下,FreeRTOS的路径如图14和图15。
14.png

图14

15.png

图15

最后再FreeRTOS的工程中添加uart.c这个文件,如图16,添加到哪个文件夹下大家随意。
16.png

图16

打开uart.c文件,修改头文件和添加发送数据函数,如图17。
17.png

图17

打开uart.h文件,添加头文件和发送函数的定义(图18)。
18.png

图18

最后再main.c文件中添加UART的任务和任务句柄,如图19。
19.png

图19

修改函数的初始化,去掉CAN的初始化添加UART1的初始化,同时修改任务的创建,将CAN的任务创建删除,添加UART的创建(图20)。
20.png

图20

复制CAN的任务函数,修改为UART的任务函数,同时修改CAN发送部分为UART(图21)。
21.png

图21

来看一下Debug部分的代码,也就是刚才串口接收到的数据内容(图22)。
22.png

图22

最后打开两个串口助手,打开对应的串口,按下K6键可以看到UART1接收到了数据,同时UART2接收到了任务使用情况(图23)。
23.png

图23

看一下开发板的接线吧(图24),也是比较简单的。
24.jpg

图24

4.总结
FreeRTOS还是非常节省CPU的资源的,适用于很多场景,AutoChips还是非常给力的,大家也可以多学习学习这个系统。这次AutoChips测评到这里就结束了,不是以后都不出AutoChips的教程,如果有童鞋有需要可以留言或私信,到时候可以出一些相关的教程,也希望童鞋们能够多支持支持。
@21小跑堂 原创教程文章
修改后的FreeRTOS的压缩包:
游客,如果您要查看本帖隐藏内容请回复

使用特权

评论回复
| 2020-11-16 13:10 | 显示全部楼层
很好很详细!

使用特权

评论回复
 楼主 | 2020-11-16 22:43 | 显示全部楼层

哈哈,费了老大劲了!

使用特权

评论回复
| 2020-11-17 15:36 | 显示全部楼层
freeRTOS和ucos有什么区别?

使用特权

评论回复
 楼主 | 2020-11-17 15:43 | 显示全部楼层
数据采集存储 发表于 2020-11-17 15:36
freeRTOS和ucos有什么区别?

没用过UCOS,但是UCOS需要收费,FreeRTOS是免费的,最大的区别在这。

使用特权

评论回复
| 2020-11-20 08:53 | 显示全部楼层
谢谢分享【FreeRTOS详细讲解与修改任务 】

使用特权

评论回复
| 2020-11-25 11:01 | 显示全部楼层
看看看

使用特权

评论回复
| 2020-11-27 10:30 | 显示全部楼层
赞一个

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表