天天看点

Keil5创建基于RTX的STM32工程

综述

从keil4到keil5,keil的功能越来越强大。特别是keil5之后,出现了RTE配置环境,我感觉特别方便,省去了那么多移植步骤,对于像我们这种“懒癌”真是福音啊!RTX这款实时操作系统还是我在逛论坛是发现的,不看不知道,一看忘不了啊!从此就觉得得好好研习一番,不过实时操作系统原理基本都一样。但是RTX有它独特之处,就是它中断延时对M3/M4内核可以实现零等待,带有免版税,确定性的RTOS。话不多说,咱们开始创建RTX工程。前提是你得安装了keil5,我的是5.22版本。

创建工程

1.创建一个新工程

2.选择你的平台芯片。(我的是F103VET6)

Keil5创建基于RTX的STM32工程

3.勾选必要的组件。这里RTOS有2个版本,我选择的是版本4,版本区别可以点击后面的Description链接查看说明。当勾选其中的一个组件时,RTE窗口会提示缺少的组件(感叹标志),此时缺少什么就勾选什么

Keil5创建基于RTX的STM32工程

此图是描述RTOS如何使用,就相当于用户手册一样

Keil5创建基于RTX的STM32工程

4.一个完整工程必要的组件。我创建的工程只是简单的使用实时系统闪了个灯。RCC、GPIO、Framework必不可少

Keil5创建基于RTX的STM32工程

5.勾选完组件后,点击OK,回到工程界面。然后给Source Group1增加mian.c文件

Keil5创建基于RTX的STM32工程

6.选择Use Code Template ,添加mian.c文件

Keil5创建基于RTX的STM32工程

7.配置RTE_Device.h 和 RTX_Conf_CM.c文件。RTE_devie.h文件要配置正确的时钟系统

Keil5创建基于RTX的STM32工程

配置RTXConf,这些选项跟UCOSIII很相似,基本上看命名上就能读懂

Keil5创建基于RTX的STM32工程

8.添加bsp文件到工程中去,并增加头文件路径

Keil5创建基于RTX的STM32工程

编写用户任务

RTX的任务编写同UCOS差不多,包括线程函数、线程ID、线程对象。其实,注释已经给你很好的提示啦,只需要按着照做就可以啦

Keil5创建基于RTX的STM32工程

编写完后,就可以编译下载运行了。回顾流程,RTX使用还是非常简单。没有像UCOS、FreeRTOS移植那么麻烦。当然,你使用keil4还是得移植,其移植也非常简单。另外,可能有读者发现没有中断服务文件stm32f10x_it.c,当你要使用譬如串口中断服务时,需要添加中断服务函数,这个文件的添加跟mian.c的文件是一样的。当然,读者也可以将中断服务函数写在bsp文件里,但这不是我的习惯,我比较喜欢统一管理的方式。

Keil5创建基于RTX的STM32工程

当然,更方便的是调试功能,从Debug选项卡选择OS Support->System and Thread viewr,可以看到当前系统运行的线程状态。另一个Event viewr选型则需要平台的调试接口留出swo接口才行,也就是标准的SWD接口。否则是用不了此功能。

Keil5创建基于RTX的STM32工程

总结

RTX和keil5联合使用,就如同双剑合璧,历害无比。使用keil调试RTX也是非常直观的,虽然ucos也有uc probe工具可以调试使用,但那个需要收费,不是很方便。况且,keil5的RTE环境还可以直接创建FileSystem、GUI、ETH、USB等复杂的工程,非常方便。

继续阅读