STM32下完成一个基于FreeRTOS的多任务程序
一、 FreeRTOS简介
FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。FreeRTOS-百度百科
FreeRTOS是一款 “开源免费”的实时操作系统,遵循的是GPLv2+的许可协议。
二、 MDK下移植FreeRTOS
2.1 资料获取
FreeRTOS的源码和相应的官方书籍均可从官网FreeRTOS获得。
本实践源码版本是v9.0.0。
百度网盘:FreeRTOSv9.0.0提取码:yv8r
MemMang:里面存放的是FreeRTOS自带的内存管理方案的源文件
FreeRTOS的源码核心部分是tasks.c和list.c
2.2资料整理并导入STM32工程中
具体步骤请参考FreeRTOS移植到STM32F103步骤与注意事项
PS:其中有IAR和MDK版,请在导入工程时仔细看清要求。
下面我将按照上面博客进行再次配置文件。
- 整理文件

按照以上博客删除到如上目录树即可。 - 在正点原子提供的串口实验库函数的源代码基础上进行添加FreeRTOS工程。如下:

FreeRTOS\tasks.c
FreeRTOS\list.c
FreeRTOS\portable\Keil\ARM_CM3\port.c
FreeRTOS\portable\MemMang\heap_4.c
具体导入就是以上文件。
- 添加头文件


- 定义系统底层相关的函数
对startup_stm32f10x.hd.s进行以下更改

用英文
;进行相关注释。
- 修改stm32f10x_it.c文件

由于FreeRTOS对这几个中断的名称做了自己的定义,因此必须要重定义这几个函数才能正常进入中断,但这么做又会跟ST提供的stm32f10x_it.c文件当中定义的中断相冲突,因此必须将stm32f10x
4万+




被折叠的 条评论
为什么被折叠?



