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

OpenMCU(一):STM32F407 FreeRTOS移植

概述

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

        OpenMCU_FreeRTOS工程的愿景主要有:

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

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

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

移植步骤

1、keil创建stm32F407的工程

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

创建完成后的效果:

3、下载FreeRTOS代码

从 GitHub - FreeRTOS/FreeRTOS: 'Classic' FreeRTOS distribution. Started as Git clone of FreeRTOS SourceForge SVN repo. Submodules the kernel.下载最新的内核代码

4、解压下载的源码,并找到CORTEX_M4F_STM32F407ZG-SK的demo工程模板

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

6、将demo工程中的如下文件拷贝到Application文件夹下面.

拷贝后的效果:

7、Application分组添加c文件

8、CMSIS添加system_stm32f4xx.cC文件,文件存放的路径为:

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

10、添加启动文件startup_stm32f407xx.s

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

12、添加内核移植中的与STM32F4相关的代码

代码路径在kernel/portable部分

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

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

15、编译器选项设置

a. target选项

b. c/c++选项

加入STM32F407xx定义

17、修改stm32f4xx_it.c文件中的如下函数定义

__weak void SVC_Handler(void) 
{ 
    vPortSVCHandler(); 
} 

__weak void PendSV_Handler(void) 
{
    xPortPendSVHandler();
}
 
__weak void SysTick_Handler(void) 
{ 
    if (xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED) { 
        xPortSysTickHandler(); 
    } 
} 

删除: __weak void EXTI9_5_IRQHandler(void)和 __weak void EXTI15_10_IRQHandler(void)

17、编译输出

工程连接

yanl1229/OpenMCU_FreeRTOS

相关文章:

  • OpenHarmony定制子系统
  • SQL Server查询计划操作符(7.3)——查询计划相关操作符(8)
  • 预测 38 种成分与 X 蛋白的结合活性,并构建 GCN(图卷积网络)与 Transformer 双模型进行交叉验证的大致步骤
  • 企业工程项目管理系统源码:Java版源码解析
  • 扣子(Coze):重构AI时代的工作流革命
  • 利用Ollama+AnythingLLM+本地向量数据库Milvus+本地DeepSeek大模型实现知识库的搭建
  • Docker基础-自定义镜像与容器网络
  • 【MySQL】(3) 数据类型
  • 韩国互联网巨头 NAVER 如何借助 StarRocks 实现实时数据洞察
  • 【系统架构设计师】软件架构的重要性
  • STM32——串口通信 UART
  • Gartner:数据安全平台DSP提升数据流转及使用安全
  • 大白话css第九章主要聚焦于前沿技术整合、生态贡献与技术传承
  • 一文了解Conda使用
  • 数据结构:八大排序(冒泡,堆,插入,选择,希尔,快排,归并,计数)详解
  • 《HarmonyOS赋能的智能影像诊断系统安全架构与临床实践》
  • 轻松部署 Stable Diffusion WebUI 并实现局域网共享访问:解决 Conda Python 版本不为 3.10.6 的难题
  • 软件工程与实践(第4版 新形态) 练习与实践1
  • Power Settings Explorer官网下载地址: Windows电源选项设置管理工具
  • 自由学习记录(41)
  • 关于我们网站设计/营销策划公司名字
  • 制作动态网站/电商运营多少钱一个月
  • 济南企业建站系统/a5站长网
  • jsp网站开发书籍推荐/深圳优化公司义高粱seo
  • 网页设计与制作难不难/免费下优化大师
  • 常设中国建设工程法律论坛网站/广告服务平台