系列文章目录
用FlyMcu和USB转TTL给stm32中烧录程序(stm32C8/C6)
前言
在嵌入式系统开发中,实时操作系统(RTOS)的使用已经成为提高系统性能和效率的重要工具。而FreeRTOS作为一款广泛应用的开源RTOS,为开发者提供了强大的多任务处理和资源管理能力。STM32F103C8T6,作为STM32系列中的一员,以其强大的性能和丰富的外设以及低廉的价格而备受初学者青睐。本篇博客通过将FreeRTOS与STM32F103C8T6相结合,能够实现更高效、更稳定的任务调度和系统管理,为项目带来全新的可能性。
在本文中,我们将一步步引导您完成这一移植过程。将从获取FreeRTOS源码开始,深入了解如何适配STM32F103C8T6的硬件和时钟配置,以及如何创建和管理FreeRTOS任务。我们将特别关注一些常见问题和注意事项,确保您在移植过程中能够顺利解决可能出现的挑战。
一、先决条件:
1.keil开发环境
2.stm32f103c8t6开发板
3.下载器(stlink或者使用文件开头提到的flymcu搭配usb-ttl下载程序)
二、使用步骤
1.获取FreeRTOS源码:
从官方网站freeRTOS下载最新版本的FreeRTOS源码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/d24e4682ef6f4a3ca004aae76fc7732b.png)
![选择带有example例程的下载](https://img-blog.csdnimg.cn/9afc5b177c964e57b4c1d2ff3d6272e5.png)
2.将freeRTOS相关文件移植进keil工程:
1.将官网下载的压缩包进行解压
![在这里插入图片描述](https://img-blog.csdnimg.cn/1df010570af94b4fa00a4f3ec0ecee1b.png)
2.在需要移植的keil工程下创建一个FreeRTOS文件夹
![在这里插入图片描述](https://img-blog.csdnimg.cn/87cd1ef58bf742acb3b8192f6dfde451.png)
3.创建一个子文件夹port
a 在FreeRTOS目录下并将源码中的MemMang粘贴进该文件夹中。(内存管理相关的代码)
![在这里插入图片描述](https://img-blog.csdnimg.cn/eddbd1c719eb463b9c9d412141346a96.png)
b 在FreeRTOS目录下并将源码中的port粘贴进该文件夹中。
![](https://img-blog.csdnimg.cn/989c0996eea6408a9db6dbdc0cf1be9a.png)
4.将FreeRTOS源码中include整个文件夹复制到FreeRTOS中
![在这里插入图片描述](https://img-blog.csdnimg.cn/3b9d50491e3045ed9f8f8df030017649.png)
5.创建一个src文件夹在FreeRTOS目录下,将以下文件加入该文件夹
![在这里插入图片描述](https://img-blog.csdnimg.cn/41ded90f59c840c1978813bd1dc8ab17.png)
6.从源码DEMO的cotex-m3文件夹中粘贴一个FreeRTOSconfig.h放进FreeRTOS中。
![在这里插入图片描述](https://img-blog.csdnimg.cn/c36844a41898445a815d21a17687c89e.png)
3.修改相关文件内容,使得FreeRTOS可以正常运行在c8t6上:
1.修改config,h相关内容(具体解释会在后面讲述)
![在这里插入图片描述](https://img-blog.csdnimg.cn/0806531e599b430fa4b2c7ff6aad8711.png)
2.修改stm32f10x_it.c,注释下面三个函数
![在这里插入图片描述](https://img-blog.csdnimg.cn/7e54ffb3062a4bb1ab8537a66e05b919.png)
3.创建一个简单的点灯程序(万物皆可点灯)
![在这里插入图片描述](https://img-blog.csdnimg.cn/f40d9b79684345b79c09efc48107d58f.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/bc41738a6b54415aa617235ff2e55932.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/d23449f9926c46fd8dcb8ca275ef29d6.png)
总结
以上就是今天要讲的内容,移植过程中如果遇到什么问题欢迎在评论区留言。