基于标准库函数的STM32的freertos的移植(三)——MDK工程搭建、配置与修改

news2024/11/24 20:11:37

1.打开MDK5软件,新建MDK工程,将新建工程文件保存在Project_Stm32f407/mdk文件夹下,并将工程命名为freertos_M4,选择MCU型号为STM32F407ZG,新建工程文件的步骤如下图所示:

图1 新建工程
图2 保存工程路径和工程名
图3 选择芯片型号
图4  工程新建成功

2.MDK5工程文件目录列表的搭建,配置MDK工程文件目录,具体步骤如下图所示:

图5 工程目录管理界面
图6 根据功能进行文件组命令

 

图7 文件目录修改

3.首先添加Startup,将 \Project_Stm32f407\cmsis\arm目录下的startup_stm32f40_41xxx.s添加到Startup目录。

图8 Startup添加汇编文件

 

4.然后添加FWLib的所有接口的库文件,将Project_Stm32f407\fwlib\src目录下的所有c源文件添加到工程目录的FWLib目录(注意:仅需要添加c源文件,不需要添加.h头文件)。

图9 FWLib添加源文件

 

5.CMSIS目录添加STM32F4架构相关系统的源文件,将Project_Stm32f407\user目录下除main.c外,其他.C源文件均添加到CMSIS目录下。

图10 CMSIS添加源文件

 

6.然后将Project_Stm32f407/user目录的 main.c的文件添加到USER目录下。

图11 USER目录添加main.c

 

7.然后将Project_Stm32f407\freertos目录的 .c的文件添加到freertos_core目录下。

图12 freertos内核文件添加

 

8.然后将Project_Stm32f407\freertos\portable\MemMang目录的 heap_4.c的文件和Project_Stm32f407\freertos\portable\RVDS\ARM_CM4F目录的port.c添加到freertos_port目录下。

图13 添加freertos的port文件

 

9.STM32工程文件配置设置,具体步骤如下图所示:

图14 设置hexfile输出
图15 设置头文件目录

 

10.main.c修改如下图所示:

图16 main.c内容修改

 

11.将FWLib目录下的stm32f4xx_fmc.c删除。

图17 删除stm32f4xx_fmc.c文件

 

12.将stm32f4xx_it.c中的main.h的头文件进行注释,如下图所示:

图18 注释main.h

 

13.FreeRTOSConfig.h头文件修改如下所示:

图19 修改宏定义

 

14.注释掉stm32f4xx_it.c中的PendSV_Handler(),SVC_Handler(),SysTick_Handler()这三个函数。如下图:

图20 stm32f4xx_it.c注释三个中断服务函数

 

15.FreeRTOSConfig.h头文件hook宏定义修改为零,如下所示:

图21 hook宏定义设置为0

 

16.编译程序,发现程序不再报错,说明freertos在mdk上移植配置成功,后续将进行freertos应用软件的编写。

图22 基于MDK的freertos的工程编译成功

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/588107.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT-AI地图

ChatGPT-AI地图 1、AI-对话 应用名称应用地址ChatGPThttps://chat.openai.com/NotionAINotion AIA.I. Data Sidekick:AI工具编写 SQL、文档等的速度提高10倍[AirOpsWritesonic:人工智能写作辅助工具Writesonic - Best AI Writer, Copywriting & Par…

《深入理解计算机系统(CSAPP)》第3章 程序的机器级表示 - 学习笔记

写在前面的话:此系列文章为笔者学习CSAPP时的个人笔记,分享出来与大家学习交流,目录大体与《深入理解计算机系统》书本一致。因是初次预习时写的笔记,在复习回看时发现部分内容存在一些小问题,因时间紧张来不及再次整理…

MySQL 数值函数

文章目录 数值函数1. abs(num)2. ceil(num)3. floor(num)4. mod(num1,num2)5. rand()6. round(num,n)7. truncate(num,n)8. sqrt(num) 数值函数 数值函数用来处理数值方面的运算,能够提高用户的工作效率。常用的数值函数如下表所示,函数括号内为输入的参…

牛客网基础语法11~20题

前言:今天是咱们第二期刷牛客网上的题目。 目标:对输入输出的格式,方法,类型掌握熟练,对double,float理解深入,编程思想更进一步。 鸡汤:人活着,再苦再累,都别…

16-Vue技术栈之常用的 Composition API

目录 1、什么是组合式 API?2、拉开序幕的setup3、ref函数4、reactive函数5、Vue3.0中的响应式原理5.1 vue2.x的响应式5.2 Vue3.0的响应式 6、reactive对比ref7、setup的两个注意点8、计算属性与监视8.1 computed函数8.2 watch函数8.3 watchEffect函数 9、 生命周期1…

防雷接地的施工工艺与防雷施工方案

雷电是自然界的一种强大而危险的自然现象,经常造成重大财产损失和人员伤亡。为了保护建筑物和人员免受雷电的危害,防雷接地系统的设计和施工至关重要。本文将介绍防雷接地的施工工艺和防雷施工方案,强调专业和符合国家标准的方法,…

chatgpt赋能python:Python中乘方运算符号:用于数学计算和科学计算

Python中乘方运算符号:用于数学计算和科学计算 简介 乘方运算是Python中常用的数学运算符,通常在数学计算和科学计算中使用。在Python中,乘方运算符用**表示。该运算符用于计算数字的指数幂。 用法 乘方运算符可以用于两个数字之间的计算…

vue开发环境搭建-win7

vue开发环境搭建-win7 1. 安装node,js2. 设置node global(全局)和cache(缓存)路径3. 配置环境变量4. 基于 Node.js 安装cnpm(淘宝镜像)5. 安装vue6. 安装vue脚手架 vue-cli7. 项目创建8. 添加相关依赖9. 修改端口号10. 运行项目 1. 安装node,js 下载no…

docker版jxTMS使用指南:python服务之内置自动机

本文讲解4.0版的jxTMS中python服务的内置自动机,整个系列的文章请查看:docker版jxTMS使用指南:4.0版升级内容 docker版本的使用,请参考:docker版jxTMS使用指南 4.0版jxTMS中python服务是一个采集前端数据的接口机。其…

【FreeMarker】学习笔记

【FreeMarker】学习笔记 【一】FreeMarker概述【1】FreeMarker概念【2】FreeMarker特性(1)通用目标(2)强大的模板语言(3)通用数据模型(4)为Web准备(5)强大的X…

opencv_c++学习(三十)

一、加载深度神经网络模型 Net cv:dnn::readNet(const String & model, const String & config "", const String & framework "")model:模型文件名称 config:配置文件名称 framework:框架种类 Net类中的函数名称以及作用: 向…

Eplan使用过程中的知识点1

一、新建时的几种标准模板 EPLAN中的符号库符合国际标准,分为单线图和原理图符号库。 符号库符合GB(国标)、IEC(国际标准)、NFPA(美国标准)和GOST(俄罗斯标准)4大标准。…

排水管网监测预警系统:全面感知管网运行态势

城市排水管网是城市基础设施系统中至关重要的一部分,它负责将雨水和废水排出城市,维持城市的正常运行。然而,随着管网的老化和城市扩张,排水管网出现了越来越多的问题,如泄漏、堵塞和损坏,给城市环境和公共…

一、机器人传动方式

1、齿轮传动 齿轮的最重要属性就是它的齿数。齿轮是根据齿数分类的。齿轮通常不会单独使用,齿 轮的基本属性就是可以将运动从一根轴传到其它轴上。 利用齿轮改变转速 利用齿轮改变转动方向 将旋转运动改变为直线运动 带自锁的涡轮蜗杆传动 齿轮可以用来传递力、增加…

Python中打印彩色信息的方法

在Python中,可以使用print()函数打印出彩色信息。在使用print()打印之前,需要调用os标准库对系统进行设置。 1 os标准库 1.1 简介 os是Operating System的简写,即“操作系统”。os标准库是一个操作系统接口模块,提供了使用操作…

关于Addressable打包图集与图片都打进去造成冗余

1)关于Addressable打包图集与图片都打进去造成冗余 ​2)Unity如何计算Root动画旋转 3)IL2CPP编译的Protobuf反射类运行时报空 4)为什么Active Constraints会出现过高的现象 这是第337篇UWA技术知识分享的推送,精选了UW…

配置 ssh key 后 git 拉取代码一直提示输入用户名、密码问题

中间过程比较碎碎念,涉及到一些错误的方案以及和 gpt 对线 可以直接跳到结论部分 0 场景 我有一个项目,仓库里已经配置了 ssh 公钥,但是每次 pull 或者 push 代码依旧提示输入用户名、密码 -1 失败的方案 -1.1 失败的方案1:全…

迅为国产化RK3588开发板在安防前后端应用解决方案

K3588是瑞芯微推出的一款高性能处理器,针对安防领域的应用具备强大的计算能力和图像处理能力。下面是关于RK3588的安防前后端应用解决方案的介绍: 前端摄像头端: 高清视频采集:利用RK3588处理器的高性能图像处理能力,…

MySQL 对字符串使用 STR_TO_DATE() 函数

文章目录 STR_TO_DATE() 函数1. 待转换字符串中出现数字以外的,自动去除字符,然后添加0至8位转换为日期2. 如果格式字符串仅包含日期,则待转字符串至少需要 8 位数字3. 转换后日期时间必须有效,否则返回结果为 null4. 如果被转字符…

视频怎么加水印?如何录制带水印的视频?

案例:如何给视频添加水印? 【我发布在短视频平台的视频,总是被别人盗用,我想给自己的视频添加水印。有没有视频添加水印的方法?在线等!】 很多视频制作者或者爱好者,都希望自己的视频作品得到…