当前位置: 首页 > article >正文

OpenMCU(三):STM32F103 FreeRTOS移植

概述

        本文主要描述了STM32F103移植FreeRTOS的简要步骤。移植描述过程中,忽略了Keil软件的部分使用技巧。默认读者熟练使用Keil软件。本文的描述是基于OpenMCU_RTOS这个工程,该工程已经下载放好了移植STM32F103 FreeRTOS的所有文件

        OpenMCU_RTOS工程的愿景主要有:

        1.、能移植支持主流mcu的freeRTOS

        2、深入分析FreeRTOS代码和第三方库代码,让嵌入式学习变得非常容易;

        3、集成一些嵌入式产品中常用的第三方库文件,并且该工程会开发做一些产品原型,所有的技术方案,就像它的名字一样,全部开源。

移植步骤

1、keil创建STM32F103的工程

注意:一定要选中RTE中CMSIS中的CORE部分

2、工程创建完毕后,在keil中建立分组管理,如下所示:

3、创建完成后的效果:

4、下载FreeRTOS源码

本文在描述过程中,所有的源码都是基于OpenMCU_RTOS工程。文章的最后部分,有该工程的链接。

5、在刚才新创建的keil STM32F103工程目录下创建Appication文件夹

6、将如下文件拷贝到Application文件夹下面.

注:

该文件已经拷贝并放入了OpenMCU_RTOS工程;读者可以通过文章最后的连接,获得工程源码。

7、Application分组添加c文件

8、CMSIS添加system_stm32f1xx.c C文件,文件存放的路径为:

OpenMCU_RTOS\arch\STM32\STM32F1XX\CMSIS\Device\ST\STM32F1xx\Source\Templates

9、添加STM32F103xx BSP驱动文件,文件路径为:

OpenMCU_RTOS\arch\STM32\STM32F1XX\STM32F1xx_HAL_Driver\Src

10、添加启动文件startup_stm32f103x6.s,文件路径为:

OpenMCU_RTOS\arch\STM32\STM32F1XX\CMSIS\Device\ST\STM32F1xx\Source\Templates\arm

11、添加freeRTOS内核C文件,文件路径为:

OpenMCU_FreeRTOS\kernel

12、添加内核移植中的与STM32F103架构相关的代码

需要关注的文件路径:

port.c文件:\OpenMCU_RTOS\kernel\portable\RVDS\ARM_CM3

heap_4.c: OpenMCU_FreeRTOS\kernel\portable\MemMang

FreeRTOSConfig.h: OpenMCU_RTOS\project\STM32F1\Keil\Application

13、所有分组添加完后如下图所示:

14、添加编译时的头文件路径

1、Application

2、OpenMCU_RTOS\arch\STM32\STM32F1XX\CMSIS\Include

3、OpenMCU_RTOS\arch\STM32\STM32F1XX\CMSIS\Device\ST\STM32F1xx\Include

4、OpenMCU_RTOS\arch\STM32\STM32F1XX\STM32F1xx_HAL_Driver\Inc

5、OpenMCU_FreeRTOS\kernel\include

6、OpenMCU_RTOS\kernel\portable\RVDS\ARM_CM3

添加完成后,如下所示:

15、编译器选项设置

a、编译器版本选择

加入STM32E230定义和修改编译警告级别

16、删除stm32f1xx_it.c文件中的如下函数定义

17、编译输出

工程连接

OpenMCU_RTOS: 开源MCU软件库管理


http://www.kler.cn/a/584179.html

相关文章:

  • 【学习笔记】《逆向工程核心原理》03.abex‘crackme-2、函数的调用约定、视频讲座-Tut.ReverseMe1
  • 【LangChain】理论及应用实战(4):Memory
  • 视觉语言模型VLM发展脉络
  • windows第十二章 MFC控件常用消息
  • FANUC机器人几种常用的通讯网络及接口
  • Gone v2 中 Gone-Gin 性能测试报告
  • AUTOSAR_CP_EthernetSwitchDriver
  • 人工智能之数学基础:线性变换及其机器学习领域中的应用
  • Flutter_学习记录_connectivity_plus 检测网络
  • Yashan DB 应用开发
  • Python里matplotlib不显示中文的问题
  • MoonSharp 文档五
  • 前瞻技术:未来生活的新动力与改变
  • spark实验
  • 树与二叉树的遍历
  • Vue3中全局使用Sass变量方法
  • JetBrains(全家桶: IDEA、WebStorm、GoLand、PyCharm) 2024.3+ 2025 版免费体验方案
  • 【拓扑排序】火星词典
  • SpringS ecurity测试登录接口报错
  • Visual Studio关闭警告