基于正点原子探索者stm32的FreeRTOS学习01

编程

之前玩单片机一直使用的是前后台系统,什么都是模块硬怼,中断和循环写好之后,加上一些输入输出感觉什么都可以肝出来,但是一直感觉自己没什么提升,觉得单片机已经走到头了,之后才发现是自己没了解到,现在重新进行新的RTOS系统学习,以前学32刚好买了正点原子的stm32,刚好就顺着原子哥的视频先入入门,顺便记录下一些问题

 

RTOS系统全称:Real TIme OS       实时操作系统,主要强调实时性,市面上有很多,例如:FreeRTOS   UCOS    RTX   RT-Thread   DJYOS等

RTOS操作系统的核心内容在于:实时内核!

可剥夺性内核,可以剥夺其他任务的CPU使用权,它总是运行就绪任务中的优先级最高的那个任务

FreeRTOS系统是一个可裁剪、可剥夺型的多任务内核,而且没有任务数量限制,它提供了实时操作系统所需要的所有功能,并且是使用c和汇编写的,结构简洁,可读性很强!非常适合嵌入式入门学习

 

 

 双击下载安装,之后会有这些:

Plus是官方做的拓展功能,不是FreeRTOS的升级版

其中Source是内核源码

开始进行FreeRTOS移值操作

先在原子库中打开一个工程模板,整体复制出来放在桌面:

在其目录下面创建一个名为:FreeRTOS  的文件夹

 

 

 将FreeRTOS的源码复制在这个文件夹下

 

 

 在portable文件下只留下这些:

 

 

 然后打开工程,添加分组:

添加对应文件:

 

下图中      port.c在              实验1 FreeRTOS移值FreeRTOSportableRVDSARM_CM4F           路径下

 

 

 

 

 关于  heap_4.c  这个文件是FreeRTOS的内存管理,有多种,这里先添加第四个,以后会学习

接着添加头文件路径

 

接着需要添加FreeRTOS官方的demo

 

 文件路径是:FreeRTOS源码FreeRTOSv9.0.0FreeRTOSDemo   找到上述文件夹,打开:

这个demo是基于iar的,所以这个.h文件我们要稍作修改,在下面

 

 把这个文件复制到工程中

 

工程中的    usart.c     文件,第47行      在    _sys_exit(int x)      前加入   void

void _sys_exit(int x)              这是由于新版mdk支持性问题

由于FreeRTOS 官方给出的demo历程是基于IAR的,但是这是使用的编译器是mdk5,所以我们刚才复制过来的 FreeRTOS.h   是要进行修改:

打开 FreeRTOS.h 文件,在87行可以看到这样的

 

 改为:

1#if defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__)

 

 接着下面的函数使能改为关闭:

 

 

接着去这里,将这几个函数注释掉

 

 

 

 此时编译,应该是完全没有错误了

但是,还是无法使用的,我们将已经配置好 FreeRTOS 工程的 SYSTEM 复制替换掉我们自己新建的工程的 SYSTEM 文件夹

然后将该宏定义屏蔽

 

 接着再次编译,无错误无警告,成功

补充:

关于MDK5显示中文乱码的问题,更改如下设置:

 

 

就可以了

以上是 基于正点原子探索者stm32的FreeRTOS学习01 的全部内容, 来源链接: utcz.com/z/519621.html

回到顶部