分享配置FreeRTOSConfig.h文件因部分宏值配置不对以及相应函数未定义出现的三个错误解决方法

今天来分享一个在创建FreeRTOS时候调用官方的FreeRTOSConfig头文件时,因部分宏值的配置与FreeRTOS内核文件中的函数不匹配,导致编译时候出现了相应的错误。

于是,既然遇到了,就准备拿出来讲一下,让其他遇到的小伙伴也可以看一下具体是什么原因导致的。

好了,话不多说,我们直接开始讲~

错误1:

首先我们来看第一个错误:

.\Objects\FM33LG0_FreeRTOS.axf: Error: L6218E: Undefined symbol vApplicationStackOverflowHook (referred from tasks.o).

首先,介绍一下该宏定义是用于配置堆栈溢出检测函数的。

而这个错误其实是我们configCHECK_FOR_STACK_OVERFLOW的宏值定义为了1或者2,所以会在编译链接时候,发现vApplicationStackOverflowHook却没有定义。因为在这些函数前都有编译条件的。

检测如果configCHECK_FOR_STACK_OVERFLOW为1或者2,才会去对其进行编译链接。但是此时该函数又没有定义,就会出现上述的提示。

其宏值定义,可以参考下图说明:
在这里插入图片描述

错误1解决方法:

那解决方法自然就是:
1、要么不使用堆栈溢出检测功能,将宏configCH.ECK_FOR_STACK_OVERFLOW配置为0。
2、要么就是定义vApplicationStackOverflowHook相应钩子函数。

错误2:

然后我们来看第二个错误:

.\Objects\FM33LG0_FreeRTOS.axf: Error: L6218E: Undefined symbol vApplicationTickHook (referred from tasks.o).

这个宏定义是用于配置使用滴答时钟钩子的。

这个错误也是因为vApplicationTickHook函数没有定义,造成编译连接时候找不到相应的函数定义。于是就出现了相应的错误提示。

错误2解决方法:

解决方法跟第一个一样,要么配置该滴答钩子函数,要么不使用的话,就将宏定义为0。

错误3:

最后我们看一下最后一个错误:

该错误也是一样,就是configUSE_MALLOC_FAILED_HOOK宏定义为1,该宏其实是用于配置内存创建失败时候进行相应提示的。

具体该函数可以参考FreeRTOS官网的描述:
在这里插入图片描述

.\Objects\FM33LG0_FreeRTOS.axf: Error: L6218E: Undefined symbol vApplicationMallocFailedHook (referred from heap_4.o).

其错误也是一样,就是vApplicationMallocFailedHook函数没有定义。

错误3解决方法:

那解决方法自然跟上述两种一样,使用的话就定义该函数,不使用的话就将该宏定义为0即可~

好了,今天分享就到这里了。有其他小伙伴如果也遇到这种情况,可以拿来参考一下~

本人水平有限,上述信息仅供学习参考,如有错误和不妥之处,请多多指教。
另外创作不易,请勿抄袭,如果有帮助到大家的话希望大家可以点个赞和收藏,谢谢~

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

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

相关文章

Docker的架构描述与安装部署

概述 Docker是一个开放的容器化平台,其提供能力轻松地支撑业务应用的开发、打包、装载、分发以及运行,在DevOps领域中,docker能高效地应对业务应用的持续集成以及持续发布(CI/CD),其架构如下所示&#xff…

被百度判定为低质量网站了!如何整改?

我是卢松松,点点上面的头像,欢迎关注我哦! 先说结论:接受现实,不要幻想百度恢复了! 百度自9月初大批量删除百度资源平台权限以来,几乎90%(未经证实**,但数量确实不小)的网站都被取消了权限&am…

2023 IntelliJ IDEA下载、安装教程, 附详细图解

文章目录 下载与安装IDEA推荐阅读 下载与安装IDEA 首先先到官网下载最新版的IntelliJ IDEA, 下载后傻瓜式安装就好了 官网下载地址:https://www.jetbrains.com/ 1、下载完后在本地找到该文件,双击运行 idea 安装程序 2、点击 Next 3、选择安装路径&…

C++ 多线程 学习笔记

线程睡眠很稳定,但无线程睡眠不稳定 线程调用类方法: 有参数时调用方法: 当参数为引用时: 当同一资源被多个线程同时引用时,为防止资源抢占,使用mutex,互斥锁 头文件#include "mutex"…

Java中的锁

Java中的锁 乐观锁 乐观锁看待多线程访问同一资源的态度是乐观的,乐观锁假设线程访问同一资源时不会产生冲突^ 冲突,所以线程在访问资源时没有加锁同时也不会阻塞,但是乐观锁也是认为冲突^ 冲突还是有可能发生的,因此存在版本号…

浏览器中怎样查看前后端传值

路径:F12–>Network -->Fetch/XHR,选择一个接口地址。 在payload里面是前端发送给后端的参数。也即客户端发送给服务端的请求数据,即接口地址入参。 Preview和Response里都是后端返回给前端的。Preview是格式化过的,比较容易看。Resp…

初学python(一)

一、python的背景和前景 二、 python的一些小事项 1、在Java、C中,2 / 3 0,也就是整数 / 整数 整数,会把小数部分舍掉。而在python中2 / 3 0.66666.... 不会舍掉小数部分。 在编程语言中,浮点数遵循IEEE754标准,不…

[Linux]文件系统

[Linux]文件系统 文件系统是操作系统的一部分,负责组织、存储和管理存储在外部设备上的文件和目录,也就是操作系统管理外设中的文件的策略。本文讲解的是Ext2文件系统。Linux操作系统使用的就是Ext系列的文件系统。 文章目录 [Linux]文件系统了解磁盘结构…

【C++杂货铺】探索stack和queue的底层实现

文章目录 一、stack的介绍和使用1.1 stack的介绍1.2 stack的使用1.2.1 最小栈1.2.2 栈的压入、弹出序列1.2.3 逆波兰表达式求值1.2.4 用栈实现队列 二、queue的介绍和使用2.1 queue的介绍2.2 queue的使用2.2.1 二叉树的层序遍历 三、模拟实现3.1 stack模拟实现3.2 queue模拟实现…

Spine2D骨骼动画播放器 - 微信小程序版

Spine2D骨骼动画播放器 - 微信小程序版 简介平台支持 界面预览使用说明演示视频 版本笨笨的小目标(废话)参考资料测试文件百度盘分享 相关文档 简介 本播放器是SpinePlayer的微信小程序版。由于官方并没有提供现成的运行库,只能自己改造。 设…

Jobs Portal求职招聘系统源码v3.5版本

Jobs Portal求职招聘系统 是为求职者和公司发布职位而开发的交互式求职招聘源码。它使求职者能够发布简历、搜索工作、查看个人工作列表。 它将提供各种公司在网站上放置他们的职位空缺资料,并且还可以选择搜索候选人简历。 除此之外,还有一个管理模块供…

JAVASE---抽象类和接口

抽象类 抽象类的概念 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类语法 在…

振弦采集仪应用地铁隧道安全监测详细解决方案

振弦采集仪应用地铁隧道安全监测详细解决方案 随着城市化进程的不断加快,地铁作为一种高效、便捷、环保的交通方式已经成为现代城市不可或缺的一部分。因此,对地铁的安全性也越来越重视,一般二三线以上的城市在不断发展中,地铁做…

MIT的智慧,利用深度学习来解决了交通堵塞

导读大家都对交通阻塞深恶痛绝。除了让人头疼和错过约会之外,交通拥堵让美国的司机每年多花3000亿美元。 研究人员建议大家使用自动驾驶汽车,即使数量占比并不大,但也能大大改善交通拥堵情况。 Lex Fridman和他的MIT团队开发了一款模拟游戏来…

【大数据实训】用Hbase模拟电影搜索引擎(四)

博主介绍:✌全网粉丝6W,csdn特邀作者、博客专家、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于大数据技术领域和毕业项目实战✌ 🍅文末获取项目联系🍅 《云计算与大数据处理》课程大作业评分表 项目考核内…

centos 端口被占用的快速排查方式

问题笔记 centos 端口被占用的快速排查方式 centos 端口被占用的快速排查方式 这里说一个我刚刚遇到的问题,解决步骤用来记录,方便以后自己查询。 nginx配置完index.html测试文件,发现一直显示的404页面。 我跑到服务器上想重启一下nginx …

使用Maven创建父子工程

📚目录 创建父工程创建子模块创建子模块示例创建认证模块(auth) 结束 创建父工程 选择空项目: 设置:项目名称,组件名称,版本号等 创建完成后的工程 因为我们需要设置这个工程为父工程所以不需要src下的所有文件 在pom…

认识JVM的内存模型

从上一节了解到整个JVM大的内存区域,分为线程共享的heap(堆),MethodArea(方法区),和线程独享的 The pc Register(程序计数器)、Java Virtual Machine Stacks(…

编程语言排行榜

以下是2023年的编程语言排行榜(按照流行度排序): Python:Python一直以来都是非常受欢迎的编程语言,它简洁、易读且功能强大。在数据科学、机器学习、人工智能等领域有广泛应用。 JavaScript:作为前端开发…

Lua03——开发环境搭建

1 安装开发插件 在 idea 或 vscode 中安装 lua 的开发插件 EmmyLua 2 创建工程 在 idea 中创建一个新的工程 工程的类型选择 lua 输入工程名及目标目录 在工程结构的SDK中设置lua在本地安装目录 在工程结构的modules中选择 lua 3 编写第一个lua程序 在工程下添加程序包&#…