武汉营销型网站/短视频培训机构

武汉营销型网站,短视频培训机构,知识付费做的最好的平台,制作一个网站数据库怎么做的概述 本文主要描述了STM32F103移植FreeRTOS的简要步骤。移植描述过程中,忽略了Keil软件的部分使用技巧。默认读者熟练使用Keil软件。本文的描述是基于OpenMCU_RTOS这个工程,该工程已经下载放好了移植STM32F103 FreeRTOS的所有文件 OpenMCU_RTOS工程的愿景…

概述

        本文主要描述了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.mzph.cn/diannao/73287.shtml

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

相关文章

生成对抗网络(GAN)原理与应用

目录 一、引言 二、GAN的基本原理 (一)生成器(Generator)的工作机制 (二)判别器(Discriminator)的工作机制 (三)对抗训练的过程 三、GAN在AIGC生图中的应…

STM32 内置的通讯协议

数据是以帧为单位发的 USART和UART的区别就是有没有同步功能 同步是两端设备有时钟连接,异步是没时钟连接,靠约定号的频率(波特率)接收发送数据 RTS和CTS是用来给外界发送已“可接收”或“可发送”信号的,一般用不到…

Appium等待机制--强制等待、隐式等待、显式等待

书接上回,Appium高级操作--其他操作-CSDN博客文章浏览阅读182次,点赞6次,收藏7次。书接上回Appium高级操作--从源码角度解析--模拟复杂手势操作-CSDN博客。https://blog.csdn.net/fantasy_4/article/details/146162851主要讲解了Appium的一些…

NFS实验配置笔记

NFS NFS服务 nfs,最早是Sun这家公司所发展出来的,它最大的功能就是可以透过网络,让不同的机器,不同的操作系统,进行实现文档的共享。所以你可以简单的将他看做是文件服务器。 实验准备 ①先准备一个服务器端的操作…

深度学习|MAE技术全景图:自监督学习的“掩码魔法“如何重塑AI基础

一、引言:深度学习的困境与自监督的曙光 深度学习(Deep Learning)无疑是当今人工智能领域基础中的基础。从图像识别到自然语言处理(NLP),它在无数任务中展现了卓越性能。例如,在安防监控中&…

【SpringBoot】实现登录功能

在上一篇博客中,我们讲解了注册页面的实现。在此基础上会跳转到登录页面,今天给大家带来的是使用 SpringBoot,MyBatis,Html,CSS,JavaScript,前后端交互实现一个登录功能。 目录 一、效果 二、…

mingw工具源码编译

ming-w64 mingw编译生成的库,需要mingw的lib文件支持。 https://github.com/mingw-w64/mingw-w64 使用msys2的bash git checkout v8.0.3 ./configure --disable-dependency-tracking --targetx86_64-w64-mingw32 mingw32-make.exe -j4 修改makefile中的make 改成mi…

LSTM方法实践——基于LSTM的汽车销量时序建模与预测分析

Hi,大家好,我是半亩花海。本实验基于汽车销量时序数据,使用LSTM网络(长短期记忆网络)构建时间序列预测模型。通过数据预处理、模型训练与评估等完整流程,验证LSTM在短期时序预测中的有效性。 目录 一、实验…

Stable Diffusion教程|快速入门SD绘画原理与安装

什么是Stable Diffusion,什么是炼丹师?根据市场研究机构预测,到2025年全球AI绘画市场规模将达到100亿美元,其中Stable Diffusion(简称SD)作为一种先进的图像生成技术之一,市场份额也在不断增长&…

Webpack构建流程详解优化前端性能\Dev-Server与Proxy\网络攻击\HMR

简版 核心流程图 根据,Webpack的构建流程分为初始化、编译和输出三个阶段。初始化阶段读取配置、加载插件、实例化Compiler。编译阶段(构建依赖关系)涉及Compiler类的运行,生成Compilation对象,处理模块依赖。输出阶…

零成本搭建Calibre个人数字图书馆支持EPUB MOBI格式远程直读

文章目录 前言1.网络书库软件下载安装2.网络书库服务器设置3.内网穿透工具设置4.公网使用kindle访问内网私人书库 前言 嘿,各位书虫们!今天要给大家安利一个超级炫酷的技能——如何在本地Windows电脑上搭建自己的私人云端书库。亚马逊服务停了&#xff…

【Linux 指北】常用 Linux 指令汇总

第一章、常用基本指令 # 注意: # #表示管理员 # $表示普通用户 [rootlocalhost Practice]# 说明此处表示管理员01. ls 指令 语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件&#xf…

跟踪napi_gro_receive_entry时IP头信息缺失的分析

问题描述 在使用eBPF程序跟踪napi_gro_receive_entry内核跟踪点时,发现获取到的IP头部字段(如saddr、daddr、protocol)为空值。 代码如下: /* 自定义结构体来映射 napi_gro_receive_entry tracepoint 的 format */ struct napi…

Android子线程更新View的方法原理

对于所有的Android开发者来说,“View的更新必须在UI线程中进行”是一项最基本常识。 如果不在UI线程中更新View,系统会抛出CalledFromWrongThreadException异常。那么有没有什么办法可以不在UI线程中更新View?答案当然是有的! 一…

【Manus资料合集】激活码内测渠道+《Manus Al:Agent应用的ChatGPT时刻》(附资源)

DeepSeek 之后,又一个AI沸腾,冲击的不仅仅是通用大模型。 ——全球首款通用AI Agent的破圈启示录 2025年3月6日凌晨,全球AI圈被一款名为Manus的产品彻底点燃。由Monica团队(隶属中国夜莺科技)推出的“全球首款通用AI…

Python----计算机视觉处理(opencv:像素,RGB颜色,图像的存储,opencv安装,代码展示)

一、计算机眼中的图像 像素 像素是图像的基本单元,每个像素存储着图像的颜色、亮度和其他特征。一系列像素组合到一起就形成 了完整的图像,在计算机中,图像以像素的形式存在并采用二进制格式进行存储。根据图像的颜色不 同,每个像…

SQLiteStudio:一款免费跨平台的SQLite管理工具

SQLiteStudio 是一款专门用于管理和操作 SQLite 数据库的免费工具。它提供直观的图形化界面,简化了数据库的创建、编辑、查询和维护,适合数据库开发者和数据分析师使用。 功能特性 SQLiteStudio 提供的主要功能包括: 免费开源,可…

【软考网工-实践篇】DHCP 动态主机配置协议

一、DHCP简介 DHCP,Dynamic Host Configuration Protocol,动态主机配置协议。 位置:DHCP常见运行于路由器上,作为DHCP服务器功能:用于自动分配IP地址及其他网络参数给网络中的设备作用:简化网络管理&…

【Linux学习笔记】Linux用户和文件权限的深度剖析

【Linux学习笔记】Linux用户和文件权限的深度剖析 🔥个人主页:大白的编程日记 🔥专栏:Linux学习笔记 前言 文章目录 【Linux学习笔记】Linux用户和文件权限的深度剖析前言一. Linux权限管理1.1 文件访问者的分类(人)…

58.Harmonyos NEXT 图片预览组件架构设计与实现原理

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! Harmonyos NEXT 图片预览组件架构设计与实现原理 文章目录 Harmonyos NEXT 图片预览组件架构设计与实现原理效果预览一、组件架构概述1. 核心组件层…