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

MDK报错:Undefined symbol assert_failed报错解决策略

MDK报错:Undefined symbol assert_failed报错解决策略


  • 🎯🪕在全网搜索相关MDK编译报错:Error: L6218E: Undefined symbol assert_param (referred from xxx.o).

✨有些问题看似很简单,可能产生的问题是由于不经意的细节原因导致。引起报错的问题有很多种可能,没有放之四海皆准的解决方案。

  • 🌿提供的解决问题的可能方案一:添加宏定义USE_STDPERIPH_DRIVER
    在这里插入图片描述
  • 🌿提供的解决问题的可能方案二:没有将相对应的驱动头文件(.h)路径包含进来或者是源文件(.c)添加到工程中。
  • 🔖这里针对的是具体的驱动文件或驱动头文件。
    在这里插入图片描述
    在这里插入图片描述
  • 🌿提供的解决问题的可能方案三:在main.c文件中,补充下面的void assert_failed()断言报错函数:
#ifdef USE_FULL_ASSERT
/*** @brief  Reports the name of the source file and the source line number*         where the assert_param error has occurred.* @param  file: pointer to the source file name* @param  line: assert_param error line source number* @retval None*/
void assert_failed(uint8_t *file, uint32_t line)
{/* USER CODE BEGIN 6 *//* User can add his own implementation to report the file name and line number,tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) *//* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */
✨很多外部导入的工程源码,添加完标准库文件后,编译报此错误,往往可能是忽略标准库驱动文件中定义了此断言assert_failed函数,却没有写实现的地方,才会出现有调用assert_param宏的驱动文件中报错。

、

/* Exported macro ------------------------------------------------------------*/
#define USE_FULL_ASSERT#ifdef  USE_FULL_ASSERT/*** @brief  The assert_param macro is used for function's parameters check.* @param  expr If expr is false, it calls assert_failed function*         which reports the name of the source file and the source*         line number of the call that failed.*         If expr is true, it returns no value.* @retval None*/#define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))/* Exported functions ------------------------------------------------------- */void assert_failed(uint8_t *file, uint32_t line);
#else#define assert_param(expr) ((void)0U)
#endif /* USE_FULL_ASSERT */

相关文章:

MDK报错:Undefined symbol assert_failed报错解决策略

MDK报错:Undefined symbol assert_failed报错解决策略 🎯🪕在全网搜索相关MDK编译报错:Error: L6218E: Undefined symbol assert_param (referred from xxx.o). ✨有些问题看似很简单,可能产生的问题是由于不经意的细节原因导致。…...

LLM - Make Causal Mask 构造因果关系掩码

目录 一.引言 二.make_causal_mask 1.完整代码 2.Torch.full 3.torch.view 4.torch.masked_fill_ 5.past_key_values_length 6.Test Main 三.总结 一.引言 Causal Mask 主要用于限定模型的可视范围,防止模型看到未来的数据。在具体应用中,Caus…...

Python函数式编程(一)概念和itertools

Python函数式编程是一种编程范式,它强调使用纯函数来处理数据。函数是程序的基本构建块,并且尽可能避免或最小化可变状态和副作用。在函数式编程中,函数被视为一等公民,可以像值一样传递和存储。 函数式编程概念 编程语言支持通…...

Guava限流器原理浅析

文章目录 基本知识限流器的类图使用示例 原理解析限流整体流程问题驱动1、限流器创建的时候会初始化令牌吗?2、令牌是如何放到桶里的?3、如果要获取的令牌数大于桶里的令牌数会怎么样4、令牌数量的更新会有并发问题吗 总结 实际工作中难免有限流的场景。…...

第四十二章 持久对象和SQL - 用于创建持久类和表的选项

文章目录 第四十二章 持久对象和SQL - 用于创建持久类和表的选项用于创建持久类和表的选项访问数据 第四十二章 持久对象和SQL - 用于创建持久类和表的选项 用于创建持久类和表的选项 要创建持久类及其对应的 SQL 表,可以执行以下任一操作: 使用 IDE …...

集合-ArrayList源码分析(面试)

系列文章目录 1.集合-Collection-CSDN博客​​​​​​ 2.集合-List集合-CSDN博客 3.集合-ArrayList源码分析(面试)_喜欢吃animal milk的博客-CSDN博客 目录 系列文章目录 前言 一 . 什么是ArrayList? 二 . ArrayList集合底层原理 总结 前言 大家好,今天给大家讲一下Arra…...

跨类型文本文件,反序列化与类型转换的思考

文章目录 应用场景序列化 - 对象替换原内容,方便使用编写程序取得结果数组 序列化 - JSON 应用场景 在编写热更新的时候,我发现了一个古早的 ini 文件,记录了许多有用的数据 由于使用的语言年份较新,没有办法较好地对 ini 文件的…...

ubuntu20安装nvidia驱动

1. 查看显卡型号 lspci | grep -i nvidia 我的输出: 01:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1080] (rev a1) 01:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1) 07:00.0 VGA comp…...

gma 2 成书计划

随着 gma 2 整体构建完成。下一步计划针对库内所有功能完成一个用户指南(非网站)。 封皮 主要章节 章节完成度相关链接第 1 章 GMA 概述已完成第 2 章 地理空间数据操作已完成第 3 章 坐标参考系统已完成第 4 章 地理空间制图已完成第 5 章 数学运算模…...

从零手搓一个【消息队列】项目设计、需求分析、模块划分、目录结构

文章目录 一、需求分析1, 项目简介2, BrokerServer 核心概念3, BrokerServer 提供的核心 API4, 交换机类型5, 持久化存储6, 网络通信7, TCP 连接的复用8, 需求分析小结 二、模块划分三、目录结构 提示:是正在努力进步的小菜鸟一只,如有大佬发现文章欠佳之…...

【Spring Cloud】深入探索 Nacos 注册中心的原理,服务的注册与发现,服务分层模型,负载均衡策略,微服务的权重设置,环境隔离

文章目录 前言一、初识 Nacos 注册中心1.1 什么是 Nacos1.2 Nacos 的安装,配置,启动 二、服务的注册与发现三、Nacos 服务分层模型3.1 Nacos 的服务分级存储模型3.2 服务跨集群调用问题3.3 服务集群属性设置3.4 修改负载均衡策略为集群策略 四、根据服务…...

No156.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…...

如何在PIL图像和PyTorch Tensor之间进行相互转换,使用pytorch进行PIL和tensor之间的数据转换

目录 引言PIL简介PyTorch和Torchvision简介PIL转换为TensorTensor转换为PIL实例代码和解释结论参考文献 📝 引言 在计算机视觉领域,使用图像处理库对图像进行预处理是非常常见的。其中,Python Imaging Library(PIL)以…...

STM32F4X UCOSIII任务消息队列

STM32F4X UCOSIII任务消息队列 任务消息队列和内核消息队列对比内核消息队列内核消息队列 UCOSIII任务消息队列API任务消息队列发送函数任务消息队列接收函数 UCOSIII任务消息队列例程 之前的章节中讲解过消息队列这个机制,UCOSIII除了有内核消息队列之外&#xff0…...

8个居家兼职,帮助自己在家搞副业

越来越多的人开始追求居家工作的机会,无论是为了获得更多收入以改善生活质量,还是为了更好地平衡工作和家庭的关系,居家兼职已成为一种趋势。而在家中从事副业不仅能够为我们带来额外的收入,更重要的是,它可以让我们在…...

管理与系统思维

技术管理者不仅仅需要做事情,还需要以系统思维的方式推动组织变革,从而帮助团队和个人做到更好。原文: Management and Systems Thinking 图片来源: Dall-E "除非管理者考虑到组织的系统性,否则大多数提高绩效的努力都将注定失败。"…...

电死人的是电流还是电压?

先说答案,是电流。 这个有两个派别,一个是电流派,一个是电压派。 举个例子,拿我们的头发或者指甲之类的高电阻物质去接触高压,你会发现基本没有什么作用;还有就是冬天我们脱毛衣的时候,噼里啪啦…...

mac 编译问题记录

1、mac 编译提示 Unsupported option ‘--no-pie‘ Linux 上用 --no-pie mac 上用 -no-pie 2、mac 找不到 malloc.h 使用 #include <sys/malloc.h> Mac上使用malloc函数报错_mac malloc.h-CSDN博客...

centos 7.9同时安装JDK1.8和openjdk11两个版本

1.使用的原因 在服务器上&#xff0c;有些情况因为有一些系统比较老&#xff0c;所以需要使用JDK8版本&#xff0c;但随着时间的发展&#xff0c;新的软件出来&#xff0c;一般都会使用比较新的JDK版本。所以就出现了我们标题的需求&#xff0c;一个系统内同时安装两个不同的版…...

【JavaEE】HTML

JavaWeb HTML 超文本标记语言 超文本&#xff1a;文本、声音、图片、视频、表格、连接标记&#xff1a;有许许多多的标签组成 vscode开发工具搭建 因为我使用的IDEA是社区版&#xff0c;代码高亮补全缩进都有些问题&#xff0c;使用vscode是最好的选择~ 安装 Visual Stu…...

终极指南:完整解锁ComfyUI Impact Pack图像增强功能

终极指南&#xff1a;完整解锁ComfyUI Impact Pack图像增强功能 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. 项目地址: https://gi…...

革命性Figma中文插件:智能汉化让设计界面秒变母语

革命性Figma中文插件&#xff1a;智能汉化让设计界面秒变母语 【免费下载链接】figmaCN 中文 Figma 插件&#xff0c;设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面而烦恼吗&#xff1f;FigmaCN是一款专为中文用户打造…...

Allegro丝印层加汉字和防静电标识?我找到了比自带功能更香的免费Skill工具

Allegro丝印层高效处理方案&#xff1a;汉字与防静电标识的终极实践指南 在PCB设计的最后阶段&#xff0c;丝印层的处理往往成为工程师们头疼的问题。尤其是当设计需要添加中文注释、企业标识或行业标准符号&#xff08;如防静电警告标志&#xff09;时&#xff0c;Allegro原生…...

NotebookLM无法识别PDF表格?手把手复现Google Research 2024最新LayoutParser适配方案(附可运行Colab脚本)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM无法识别PDF表格&#xff1f;手把手复现Google Research 2024最新LayoutParser适配方案&#xff08;附可运行Colab脚本&#xff09; NotebookLM 默认使用轻量级 PDF 解析器&#xff08;如 Py…...

Windows热键侦探:快速定位热键冲突的终极解决方案指南

Windows热键侦探&#xff1a;快速定位热键冲突的终极解决方案指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 在Window…...

构建AI信任层TrustLayer:开源插件化架构保障AI输出安全与可靠

1. 项目概述&#xff1a;为什么我们需要一个AI信任层&#xff1f;最近几个月&#xff0c;我几乎把所有主流的AI工具都试了个遍。从代码助手到文案生成&#xff0c;从图像创作到数据分析&#xff0c;每个工具都承诺能提升效率。但用着用着&#xff0c;我发现一个越来越明显的问题…...

别再手动查字典了!用EggNOG-mapper 5.0一键搞定GO/KEGG/COG注释(附完整流程)

基因功能注释自动化&#xff1a;EggNOG-mapper 5.0实战指南 在基因组学研究中&#xff0c;功能注释是连接序列数据与生物学意义的关键桥梁。传统的手动注释流程往往需要研究人员在多数据库间反复切换&#xff0c;不仅耗时费力&#xff0c;还容易引入人为误差。而EggNOG-mapper…...

终极天气API开发指南:从数据获取到可视化展示的完整流程

终极天气API开发指南&#xff1a;从数据获取到可视化展示的完整流程 【免费下载链接】Awesome_APIs :octocat: A collection of APIs 项目地址: https://gitcode.com/gh_mirrors/aw/Awesome_APIs 天气API是现代应用开发中不可或缺的组件&#xff0c;能够为用户提供实时天…...

AI智能体如何革新LaTeX写作:PaperDebugger深度集成Overleaf实践

1. 项目概述&#xff1a;当AI助手遇上LaTeX写作如果你是一名科研工作者、研究生&#xff0c;或者任何需要和LaTeX文档打交道的人&#xff0c;那么下面这个场景你一定不陌生&#xff1a;深夜&#xff0c;你对着Overleaf编辑器里密密麻麻的代码和公式&#xff0c;反复修改着论文的…...

最火 AI 生图模型 Nano Banana Pro 国内免费使用指南

最近在设计圈和 AI 圈&#xff0c;几乎无人不知 Nano Banana Pro。它是谷歌基于 Gemini 3 Pro 打造的最新图像模型&#xff0c;一上线就斩获 LMArena 生图和图像编辑榜单第一名。虽然 Nano Banana 2 的历史成绩更亮眼&#xff0c;但实测体验发现 Pro 版更好用、操作更顺手。 为…...