RT_Thread_内核包版本与芯片包版本不一致的编译报错排查

news2024/11/29 3:58:02

按时间线写的,建议看完,因为中间有的步骤不必重蹈覆辙。

1、安装RT_Thread Studio、STM32F4的SDK,新建工程编译报错error: 'struct serial_configure' has no member named 'flowcontrol'

1.1、报错含义

结构体struct serial_configure没有flowcontrol成员。

1.2、报错分析

报错代码所属的文件是STM43F4芯片SDK,但是类型定义struct serial_configure属于内核代码,内核的版本太低了。

1.3、解决方案

1.3.1、修改代码

不需要串口流控,注释掉报错的这段。(可以但不想这么做)

 1.3.2、更新内核版本

打开SDK管理器,找到“RT-Thread_Source_Code”,可以看到默认安装的是4.0.3和4.0.2版本,然后下载最新版5.0.2.

2、使用最新内核5.0.2,报错error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'

2.1、报错含义

void前有错误,缺少=,;asm __attribute__

2.2、报错分析

void前是RT_WEAK,编译器不认识,所以报错。

对比刚才的工程却没报这个错,现在内核是5.0.2,说明啥,内核又太新了,这个RT_WEAK在5.0.2中有改动。

2.3、解决方案

2.3.1、修改代码1——去掉RT_WEAK

RT_WEAK代表的是弱定义的函数,如果用户在别的地方重写就不调用RT_WEAK的这个函数,如果没有重写,因为有弱定义的函数也不会报错;

去掉RT_WEAK,需要自定义函数的时候就注释掉原来的,重新写,不冲突就行。

2.3.2、修改代码2——找到现在内核的弱定义

Ctrl+H,在工程中直接搜索“RT_WEAK”试试看,这个操作不一定成功,因为不知道改动成什么了,如果“RT_WEAK”搜不到我可能会尝试搜索“weak”。

可以看到内核中使用的是小写的rt_weak,但是芯片SDK使用的是大写的RT_WEAK,这就是错误的原因。

不想去修改内核的代码,那么可以:

  • 直接将报错的RT_WEAK改为小写的rt_weak;
  • 或者再加一个宏定义,#define RT_WEAK rt_weak,可以放在头文件board.h里;

2.3.3、找到匹配的内核包

其实在芯片SDK的“描述”里有写,只是没看英文,使用STM32F4_0.2.3需要更新内核为4.1.0;

3、扩展

更新是有规范的,官网能找到更新的记录,顺便也可以看看别的地方的更新内容,为下次报错做准备。

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

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

相关文章

C语言——I /深入理解指针(三)

一、字符指针变量 在指针的类型中我们知道有⼀种指针类型为字符指针 char* ; ⼀般使⽤: int main() { char ch w; char *pc &ch; *pc w; return 0; } 还有⼀种使⽤⽅式如下: int main() { const char* pstr "hello bit.";//这⾥是把⼀个字…

牛客算法题 HJ100 等差数列 golang语言实现

算法题目 HJ100 等差数列 描述 等差数列 2,5,8,11,14。。。。 (从 2 开始的 3 为公差的等差数列) 输出求等差数列前n项和数据范围: 1 ≤ � ≤ 10001≤n≤1000 输入描述&#xff…

docker-compose Install OrangeHRM

OrangeHRM 前言 OrangeHRM 是一个全面的人力资源管理(HRM) 系统,它包含任何企业所需的所有基本功能。OrangeHRM旨在支持任何规模的团队,包括初创企业、中小企业以及大型跨国组织。 OrangeHRM 提前条件 OrangeHRMdocker & docker-composer 安装or

MYSQL存储

注意: 1.如果没有指定的SESSION/GLOBAL,默认是SESSION,会话变量。 2.mysql服务重新启动之后,所设置的全局参数会失效,要想不失效,可以在/etc/my.cnf中配置。 变量 用户定义变量是用户根据需要自己定义变量…

STM32F407-14.3.5-01捕获_比较通道

捕获/比较通道 每一个捕获/比较通道都是围绕着一个捕获/比较寄存器(包含影子寄存器) 包括: 捕获的输入部分(数字滤波、多路复用和预分频器), 输出部分(比较器和输出控制)。 中文参考手册中框图分成了三大模块, 把框图合并成了一个整体,以便更好的理解捕获输…

2022年03月 Scratch图形化(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共10题,每题2分,共30分) 第1题 由1,2,3,4,5,0这六个数字经过排列组合能够组成多少个六位数偶数?注意:每一位都不相同,最高位不能为0。 A:720 B:360 C:312 D:88 答案:C 逻辑知识单选题 第2题 运行以下程…

贪心算法策略实现

贪心算法 贪心算法:基于某种情况进行一个排序。 贪心算法得到的是优良解,而非全局最优解。需要证明局部最优解 全局最优解 经典贪心算法 —— 会议问题 对于这个问题 ,我们提出贪心策略: 策略1:按照会议的持续时间长…

SpringBoot : ch09 整合Redis

前言 当你的应用程序需要一个快速、可扩展的内存数据库时,Redis是一个非常流行的选择。通过将Redis与Spring Boot集成,你可以轻松地利用Redis的功能,例如缓存、会话存储和消息队列等,从而提升应用程序的性能和可伸缩性。 在本教…

FUSB302MPX USB Type-C端口控制器 芯片功能介绍

FUSB302MPX是带PD的可编USB Type-C控制器,除了默认的SRC功能,器件还支持可编程性低的DRP/SRC/SNK.器件具有USB Type-C检测包括附着/分离和取向.FUSB302MPX集成了USB BMC供电协议的物理层,允许高达100W功率和角色互换.BMC PD区块完全支持Type-C指标的替代接口.器件具有自主DRP切…

git rebase冲突说明(base\remote\local概念说明)

主线日志及修改 $ git log master -p commit 31213fad6150b9899c7e6b27b245aaa69d2fdcff (master) Author: Date: Tue Nov 28 10:19:53 2023 08004diff --git a/123.txt b/123.txt index 294d779..a712711 100644 --- a/123.txtb/123.txt-1,3 1,4 123 4^Mcommit a77b518156…

UE 事件分发机制(一) day9

观察者模式原理 观察者模式通常有观察者与被观察者,当被观察者状态发生改变时,它会通知所有的被观察者对象,使他们能够及时做出响应,所以也被称作“发布-订阅模式”。总得来说就是你关注了一个主播,主播的状态改变会通…

Rabbitmq发送邮件并消费邮件

📑前言 本文主要是【Rabbitmq】——Rabbitmq发送邮件并消费邮件的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 &#x1…

小程序开发中SSL证书的重要作用

随着互联网技术的发展,越来越多的企业和个人开始开发自己的小程序来满足各种需求。然而,在这个过程中,安全性和稳定性成为了开发者必须关注的重点之一。为了保障用户的隐私安全和体验效果,越来越多的小程序开发者开始采用SSL证书进…

Sentaurus TCAD半导体器件入门常用案例合集

Sentaurus TCAD是用于模拟半导体器件和工艺的工具之一,可以帮助工程师设计电路元件,优化半导体工艺和器件性能。主要功能包括:半导体器件建模(用于建立各种半导体器件的物理模型工艺模拟)、半导体器件的制造工艺模拟&a…

VT-VRPA2-1-1X/V0/T5控制4WRE6比例方向阀放大板

带阀芯位移反馈不带集成式放大器比例方向阀控制放大器,替代力士乐同型号产品,可以完全互换使用;适用于控制力士乐系列带电位置反馈的4WRE6通径和4WRE10通径2X系列比例方向阀;0~10V、4~20mA指令控制信号任意可选;直接安…

电气制图用什么软件?CAD和Eplan哪个更胜一筹?

身为电气工程师,每天打交道最多的可能不是自家对象,而是时时刻刻攥在手里的电气图。目前市面上制作电路图的软件形形色色,但是AutoCAD Electrical和Eplan是目前大家使用率最高的两款电气制图软件。 EPLAN是一款专业的电气设计软件&#xff0…

GraphCast:基于机器学习的全球中期天气预测模型

文章信息 文章题为”GraphCast: Learning skillful medium-range global weather forecasting”,该文章于2023年发表至Science,文章内容主要关于利用机器学习模型,实现高效、准确的全球中期天气预测。由于文章内容较多,本文仅对研…

迷你洗衣机哪个牌子好又实惠?口碑最好的小型洗衣机

不得不说洗衣机的发明解放了我们的双手,而我们从小到大就有这个意识,贴身衣物不可以和普通的衣服一起丢进去洗衣机一起,而内衣裤上不仅有肉眼看见的污渍还有手上根本无法消灭的细菌,但是有一款专门可以将衣物上的细菌杀除的内衣洗…

MySQL进阶知识:一

目录 存储引擎 MySQL的体系结构 存储引擎简介 存储引擎特点 InnoDB 逻辑存储结构 MyISAM Memory 对比 存储引擎选择 索引 介绍 索引结构 BTree索引 Hash索引 索引分类 索引语法 SQL性能分析 SQL执行频率 慢查询日志 profile详情 explain执行计划 索引的…

SAP ABAP弹出对对话框错误信息设计

弹出对对话框错误信息设计、REUSE_ALV_POPUP_TO_SELECT 代码如下: IF lw_item_date-menge > lv_atp_other.lw_error-ebelp lw_item_date-ebelp.lw_error-matnr lw_item_date-matnr.lw_error-zlabst lv_labst.lw_error-zoccupy_so lv_occupy_s…