FreeRTOS系统移植到STM32

如何快速移植FreeRtos到stm32上(小白可入) 新手小白如何快速移植FreeRtos 阅读详情

目录

第一步

下载FreeRTOS

第二步

新建文件夹,复制文件

​编辑

复制FreeRTOSConfig.h文件

根据型号选择文件

添加路径

最终效果

添加头文件路径

问题汇总及解决办法

问题1

解决办法

问题2

解决办法


第一步

下载FreeRTOS

去https://sourceforge.net/projects/freertos/files/FreeRTOS/下载FreeRTOS的V9.0.0版本

第二步

新建文件夹,复制文件

复制FreeRTOSConfig.h文件

选择移植的单片机相同的系列和内核复制

根据型号选择文件

添加路径

最终效果

添加头文件路径

问题汇总及解决办法

完成后编译工程,可能会出现以下问题

问题1

..\FreeRTOS\port\RVDS\ARM_CM0\port.c(345): error:  #20: identifier "SystemCoreClock" is undefined

解决办法

/* 不论什么编译器,都声明这个变量 */
#include <stdint.h>
extern uint32_t SystemCoreClock;

/* 如果一定要区分编译器,Keil 使用 __CC_ARM 或 __ARMCC_VERSION */
#if defined(__ICCARM__) || defined(__CC_ARM) || defined(__ARMCC_VERSION)
    /* 这里的声明在 IAR 和 Keil 下都会生效 */
#endif

问题2

CTW\CTW.axf: Error: L6218E: Undefined symbol vApplicationStackOverflowHook (referred from tasks.o).
CTW\CTW.axf: Error: L6218E: Undefined symbol vApplicationTickHook (referred from tasks.o).
CTW\CTW.axf: Error: L6218E: Undefined symbol vApplicationMallocFailedHook (referred from heap_4.o).
Not enough information to list image symbols.
Not enough information to list load addresses in the image map.

解决办法

#include "FreeRTOS.h"
#include "task.h"
#include "timers.h"
/* 1. 堆栈溢出钩子函数 */
void vApplicationStackOverflowHook(TaskHandle_t xTask, char *pcTaskName)
{
    /* 当某个任务的堆栈超过预设大小时,会进入这里 */
    /* 调试时可以查看 pcTaskName 确认是哪个任务溢出了 */
    __disable_irq();
    while(1);
}

/* 2. 滴答定时器钩子函数 */
void vApplicationTickHook(void)
{
    /* 每个 Tick 中断都会调用一次,如果不需要功能,可以留空 */
}

/* 3. 内存申请失败钩子函数 */
void vApplicationMallocFailedHook(void)
{
    /* 当 pvPortMalloc 申请不到内存(堆内存不足)时,会进入这里 */
    __disable_irq();
    while(1);
}

移植结束,编译没有报错,写一个点灯程序程序,功能正常。

HAL_GPIO_TogglePin(GPIOA, DBG_Pin);
HAL_Delay(100);

【STM32标准库】移植FreeRTOS 基于STM32标准库,移植FreeRTOS操作系统 阅读详情

相关推荐

基于STM32的实时操作系统FreeRTOS移植教程(手动移植)_stm32移植freertos

你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!77)]由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!!(备注:嵌入式)你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!更多资料点击此处获qu!!

2401_83641360的博客 1063

移植FreeRTOS操作系统到stm32单片机

整个移植FreeRTOS操作系统到这里就结束了,整个结构也比较清晰。还有一个FreeRTOSConfig.h文件还没有讲解。后续也会专门出一篇文章讲解!多点点关注哦!

嵌入式 2595

STM32对FreeRTOS单片机实时操作系统的移植

裸机开发一段时间,会因为各种需求转而引入操作系统,而FreeRTOS实时操作系统目前与Linux操作系统平分秋色,本篇文章就来初探一下FreeRTOS的面貌,以及实现FreeROTS在STM32上面的移植。

weixin_37704787的博客 2470

FreeRTOS移植STM32超详细(以STM32F103ZE为例)

然后再新建一个名为 FreeRTOS_PORTABLE 的组,添加Portable目录中的MemMang文件夹中的heap4.c(这是重要的内存管理文件)目录是系统和硬件的桥梁,所以我们下一步就要在Portable文件夹中找到自己MCU与编译环境的文件。打开工程,新建一个名为 FreeRTOS_COR 的组,把Source目录的全部文件添加进去。包含的是FreeRTOS核心功能源文件及头文件 .c和.h,这两部分的文件是通用的,回到官方下载的FreeRTOS文件中,在Demo文件夹中找到对应的内核。

dnct55的博客 4996

基于STM32的实时操作系统FreeRTOS移植教程(手动移植)_stm32移植freertos(1)

直接意识代码: 这是我们大脑最希望的添加代码方式,很显然他是错的,两个任务之间产生了相互的影响,使得两个任务都执行错误,这种思想在裸机开发中肯定是错的,但是在我们的RTOS中他就可以是对的。任务型代码: 这是独立的两个任务内容,我们只需要把他的扔到我们的任务执行器里,他就会**“同时”运行了,很多小伙伴就会疑问了,单片机明明只有一个核**,为什么可以同时执行多个任务呢?这就需要去了解RTOS操作系统中任务“同时”执行的原理。在RTOS中,RTOS利用了一种类似于**“视觉暂留”的工作原理,多个任务之间快速切

2401_83641314的博客 1568

【STM32MP157 M核学习篇】STM32MP157移植freeRTOS系统

FreeRTOS是一个开源的实时操作系统(Real-Time Operating System, RTOS),专为嵌入式系统设计。它由Richard Barry创建,目前由亚马逊网络服务(AWS)维护。FreeRTOS以其轻量级、高效和易用的特点,成为全球应用最广泛的嵌入式实时操作系统之一。FreeRTOS的核心功能包括任务调度、任务间通信、内存管理和时间管理等。它采用抢占式调度算法,支持多任务并发执行,能够根据任务优先级进行实时调度,确保高优先级任务及时响应。

qq_54050349的博客 1003

【超级详细!】手把手教你STM32移植FreeRTOS系统!

本文详细介绍了将FreeRTOS最新版(202406.01LTS)移植到STM32F407ZGT6开发板的完整过程。主要内容包括:1)源码获取途径;2)工程文件精简方法,保留必要内核文件;3)Keil环境配置步骤,包含9个关键.c文件和头文件路径设置;4)FreeRTOSConfig.h配置详解及修改建议;5)中断服务函数处理注意事项;6)应用测试示例,展示队列通信功能实现。文中提供了完整的配置代码和网盘资源,并针对STM32不同型号给出了适配建议。移植完成后可通过串口和LED验证系统运行状态。

2301_80348599的博客 8433

(二)使用TrueSTUDIO编译环境在STM32上移植FreeRTOS系统

一、准备工作 使用TrueSTUDIO建立一个裸机工程 准备一个FreeRTOS源码包(我用的是FreeRTOSV8.2.3) 二、开始移植 首先在裸机工程Project_3目录中建立一个Middlewares文件夹存放FreeRTOS源码,如下图一所示。 图一 接下来对源码进行取舍,需要删减的文件存放在portable文件夹中,如下图二所示,只保留GCC和MemMang文件夹。 ...

qq_38125389的博客 1799

STM32移植FreeRTOS操作系统

摘要:本文详细介绍了FreeRTOS在STM32上的移植过程。首先从官网下载稳定版源码,创建工程并添加内核文件至特定目录。重点说明了portable文件夹作为RTOS与硬件的桥梁,需要根据MCU型号选择适配文件。移植过程中需要配置FreeRTOSConfig.h文件,处理系统中断服务函数,并解决编译错误。最后通过LED闪烁任务验证移植成功,提供了完整的工程代码下载链接。整个流程包括源码准备、内核添加、配置修改、中断处理等关键步骤,为嵌入式开发者提供了清晰的FreeRTOS移植指南。

qq_38295600的博客 7776

STM32精英版FreeRTOS系统移植实战指南

实时操作系统(RTOS)是专门为管理嵌入式系统和执行实时任务设计的操作系统。与常规操作系统不同,RTOS特别强调任务的及时执行,确保高优先级任务能够得到及时响应和处理。了解开发板上集成的各种外设和接口对于高效利用开发板进行开发至关重要。接下来将介绍一些关键的外设和接口,以及它们的基本功能。GPIO (通用输入输出) 端口:几乎每个开发板都有几个GPIO端口,它们可以被编程设置为输入或输出模式,从而实现对数字信号的控制。在特定配置下,某些引脚还能够实现特殊功能,如中断输入或串行通信。

weixin_35756373的博客 782

获取上传至DMS服务器上文件的URL

如果需要失效时间延长会设置URL永久有效, 可以去修改函数SCMS_URL_GENERATE的参数DURATION 或EXPIRATION ,DURATION最大时间是999999,若需要永久有效,则需要设置EXPIRATION的时间,这时系统会忽略DURATION的参数,生成URL的时候 SCMS_URL_GENERATE会调用SCMS_URL_SIGN函数这是其中默认这是了URL的生效时间为两小时。

一只学习的渣渣 543

STM32移植FreeRTOS操作系统详细说明

在STM32工程中我们需要创建两个文件夹,一个是用来存放源码的,一个是用来存放接口文件的。Source就是源码,Ports就是接口函数,不过在这两个文件中不需要修改任何参数,heap.4是内存管理文件,一共有5个,管理方式和工作方式不同,最常用的是4,所以我们需要从MemMang文件中选择heap_4.c,还有一个port是用来选择内核的,单片机是什么内核就选择什么内核,FreeRTOS支持的内核如下:如果是103就选择CM3内核,407就选择CM4F内核,这个看个人移植的单片机是什么。

weixin_43405473的博客 1352

SpringBoot Redis入门(一)——redis、Lettuce、Redisson使用

Lettuce是SpringBoot自带的Redis客户端,性能比Redis要好, 是线程安全的,支持同步编程,异步编程,响应式编程,自动重新连接,主从模式,集群模块,哨兵模式Redisson 是一个在 Redis 的功能基础上实现的 Java 驻内存数据网格客户端。实现了分布式和可扩展的 Java 数据结构,提供很多分布式相关操作服务,例如分布式锁,分布式集合,可通过 Redis 支持延迟队列。

朗朗的博客 3834

记录一次stm32移植FreeRTOS系统过程

本文详细记录了在STM32F103VET6开发板上移植FreeRTOS v10.2.1的过程。首先从源码托管平台下载FreeRTOS源码,然后将其添加到基于标准库的串口工程中。重点介绍了需要移植的核心文件及功能,包括任务管理、队列、事件组等。文章详细说明了配置文件的修改方法,特别是中断服务函数的重定义和钩子函数的设置。最后通过创建简单任务验证了移植的正确性。整个过程涵盖了从源码获取、工程配置到功能测试的完整流程,为STM32平台上的FreeRTOS移植提供了实用参考。

weixin_49030685的博客 1071

【chatgpt代码系列】磁导航纠偏算法推导

例如,可以根据AGV偏离路径的方向和距离,计算出需要进行的修正角度和移动距离,然后通过控制算法实现对AGV的纠偏。具体来说,磁导航AGV的行驶是通过磁场传感器感知地面磁场信号,然后根据信号的强度和方向来确定AGV的位置和方向,进而控制AGV的行驶。但是,在实际应用中,由于地面磁场信号的变化和干扰等因素,磁导航AGV可能会出现偏离路径的情况,导致行驶不稳定甚至出现误差。磁导航AGV纠偏公式是通过对AGV行驶中偏离路径的原因进行分析,结合磁导航AGV的工作原理和控制算法,推导出来的。假设AGV的目标方向为。

少磊的博客 2810

NLP实践——利用自己的语料进行Mask Language Model预训练

#!/usr/bin/env python # coding: utf-8 # In[1]: import os import json import copy from tqdm.notebook import tqdm import torch from torch.optim import AdamW from torch.utils.data import DataLoader, Dataset from transformers import BertForMaskedLM, BertTo

weixin_44826203的博客 1万+

基于标准固件库的STM32中进行FreeRTOS的系统移植

一、准备工作 平台:stm32f103c8t6 在STM32中移植FreeRTOS首先要准备FreeRTOSV9.0.0和标准固件库V3.5.0 1、FreeRTOSV9.0.0下载地址:https://sourceforge.net/projects/freertos/files/FreeRTOS/,下载后解压缩即可。 2、STM32标准固件库V3.5.0下载地址:链接: https:/...

sanaerqi的博客 2025

Codesys.运动控制修改凸轮点

通过改凸轮曲线的主从轴缩放比例或者偏置。 新建多个凸轮曲线,对CAM曲线进行切换。 程序中动态修改,仅修改中间的关键点(凸轮末点修改or凸轮曲线运行中修改)。 程序中动态修改,修改首未关键点及关键点个数,需要重新触发MC_TableSelect。 使用程序新建凸轮表代码,实现电子凸轮基本运动。 我们讲的凸轮表切换、关键点修改、程序新建电子凸轮,这些方法没有本质区别,总之都是“趁曲线不注意,把凸轮表改了。

傻响雨 6830

MQTT移植到stm32开发板——使用FreeRTOS操作系统

手把手教你将MQTT客户端移植到stm32开发板上,使用野火stm32f429官方开发板作为移植实验,使用lwip+以太网连接到云平台。

杰杰的博客 1万+

避坑指南:LISFLOOD-FP模型数据单位、参数文件与results文件夹结果解析全攻略

本文详细解析了LISFLOOD-FP洪水模拟模型的关键应用环节,包括数据单位校验、参数文件优化及结果文件解读与可视化。特别针对常见的单位混淆问题,提供了从DEM到边界条件的全面校验方法,并深入剖析了.par参数文件的配置技巧,帮助用户避免模型崩溃和结果失真。

weixin_42533622的博客 237

使用ADS进行LNA低噪放设计的详细教程

详细介绍了通过ADS软件进行LNA设计的过程,从晶体管的选型到稳定性系数分析、再到输入输出端匹配,完整的讲解了低噪放的设计流程,可以使新手小白以及学习射频放大器的朋友可以快速的了解掌握ADS的使用方法和LNA的设计方法。

weixin_41831333的博客 3452

STM32移植FreeModbus主机与FreeRTOS操作系统

STM32移植FreeModbus主机与FreeRTOS操作系统 【下载地址】STM32移植FreeModbus主机与FreeRTOS操作系统 **FreeModbus** 是一个基于GPLv2许可的开源项目,支持Modbus RTU和ASCII协议。它的设计使得开发者可以在嵌入式系统中轻松实现Modbus协议的支持。而...

gitblog_09703的博客 1363

AUTOSAE软件配置-达芬奇( DaVinci Configurator)从新建工程开始

方法1,直接使用案例工程,一般SIP包会有一个创建好的案例工程,在这样的路径YOUR_SIP_DIR/Applications/SipAddon/StartApplication下面直接打开这个*.dpa文件即可看到已经预先做好的工程:但是,这个也不是全的,也不一定完全正确,至少MCAL是没有配置好的(MCAL是IC厂商提供的,并不归属SIP包的一部分)。这样就需要你自己去配置你想要的模块,修改里面的错误。

m0_49148264的博客 2948

记录关于FreeRTOS系统的移植(基于STM32) 【一】

记录关于FreeRTOS系统的移植(基于STM32) 【一】 注:此条博客仅用于回忆之前所学的移植操作系统的过程,以及消除好久不学习的罪恶感 一. 什么是FreeRTOS 首先理解操作系统的概念,就像鸿蒙操作系统应用于华为,IOS系统用于苹果一样,操作系统是一种基于CPU的可操作的软件系统。 而FreeRTOS就是一种在X86,Xilinx,Altera等硬件平台的系统,而我们在stm32上面玩,就像是在安卓手机上面玩安卓一样。 作为一个轻量级的系统,FreeRTOS提供的功能包括任务管理、时间管理、

m0_52399529的博客 1015

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

STM32基于HAL库带FreeRTOS系统的Freemodbus移植

移植前提 下载所需源码 []

aron566博客 2961

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

STM32F105RB在FreeRTOS系统下移植使用EasyLogger

这是本人在学习移植elog时总结的笔记,也是我的第一篇博客,如有不全,希望谅解与补充,若对你有帮助,还请留下一个赞以示鼓励呀!

fcy2022007的博客 1672

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

上一篇: LM317G LDO的使用注意
下一篇: STM32CubeMX生成出现中文乱码解决办法
完善 自己
博客等级 码龄6年 106粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值