uboot symbol value ‘‘ invalid for SYS_TEXT_BASE 解决方法

news2025/1/19 3:13:44

环境

  • Win10 64位

  • ubuntu 20.04

  • 虚拟机 VMware® Workstation 16 Pro

  • gcc 交叉编译工具链: ARM 官方 gcc version 11.2.1 20220111

  • NUC980 uboot 版本 :尝试移植到 u-boot-2019.10,官方当前 u-boot 版本为 2016.11

问题描述

  • 升级 u-boot 版本: 2016.112019.10 时,发现新版本的 u-boot 在编译时有错误信息出来,造成无法正常的配置
zhangsz@zhangsz:~/nuc980d/uboot/u-boot-2019.10$ make ARCH=arm CROSS_COMPILE=arm-none-eabi-
scripts/kconfig/conf  --syncconfig Kconfig
.config:164:warning: symbol value '' invalid for SYS_TEXT_BASE
*
* Restart config...
*
*
* Boot images
  • 从报警的信息推测,可能是 SYS_TEXT_BASE 这个宏定义 为 空导致的

SYS_TEXT_BASE 定义

  • 通过代码的全局搜索(VS Code 可以轻松的实现) u-boot 代码,发现这个宏定义存在,但是为何报错呢?难道需要在 xxx_defconfig 中也配置一下?

  • 打开 板子 xxx_defconfig,发现确实没有 SYS_TEXT_BASE 相关的配置

解决方法

  • 第一步:通过 menuconfig 配置 SYS_TEXT_BASE,我当前的开发板是 nuc980_iot,所以操作如下
make ARCH=arm CROSS_COMPILE=arm-none-eabi- distclean
make ARCH=arm CROSS_COMPILE=arm-none-eabi- nuc980_iot_defconfig

make ARCH=arm CROSS_COMPILE=arm-none-eabi- menuconfig
  • 设置 SYS_TEXT_BASE

在这里插入图片描述
在这里插入图片描述

保存为 defconfig 默认配置

  • 手动 menuconfig 配置后,以后每次编译,都需要手动再配置,所以需要把配置修改保存到默认配置文件中

  • 操作命令 :make ARCH=arm CROSS_COMPILE=arm-none-eabi- savedefconfig,这里的 savedefconfig 就可以把当前的 .config 配置 保存为 defconfig,注意这个 defconfig.config 配置是一致的,但是没有过多的未配置的项,看起来很简洁。

  • defconfig 文件 覆盖 板子的 xxx_defconfig

$ make ARCH=arm CROSS_COMPILE=arm-none-eabi- savedefconfig
$ cp defconfig configs/nuc980_iot_defconfig

在这里插入图片描述

  • 这样操作后,修改的配置就保存到 板子的默认配置中了。

小结

  • 移植过程中遇到一些编译问题,可以通过提示信息进行初步的排查,多动手验证尝试解决,并积极在网络上搜索想要的答案,多做些笔记,加深问题的理解,有利于下次碰到类似问题时可以快速有效解决

  • u-boot 版本更新还是比较快的,几年前的版本,移植到最新版本上,可能需要一些适配工作,这样可以更好的熟悉 u-boot。

  • u-boot 是个优秀的代码工程,虽然比不上Linux,但是在嵌入式学习中,还是比较的优秀的代码工程,想提高自己的嵌入式开发水平,不妨多看看 u-boot 的代码,并且尝试动手移植、功能开发验证

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

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

相关文章

ThinkPHP6 模板引擎普通标签中,模板引擎运算符函数,循环标签,判断标签的使用,及一些特殊标签

ThinkPHP6 模板引擎普通标签中,模板引擎运算符函数,循环标签,判断标签的使用,及一些特殊标签 模板引擎支持普通标签和XML标签方式两种标签定义,分别用于不同的目的: 标签类型描述普通标签主要用于输出变量…

Linux 安装 JDK、MySQL、Tomcat(图文并茂)

所需资料 下载 1.1 软件安装方式 在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下: 安装方式特点二进制发布包安装软件已经针对具体平台编译打包发布,只要解压,修改配置即可rpm安装软件已经按照re…

Unity里URP项目的介绍和创建

大家好,我是阿赵,接下来会介绍一下URP的使用 一、URP的介绍 URP(Universal Render Pipeline)通用渲染管线,是Unity在2019.3版本之后推出的一种新的渲染管线。 对比起默认的渲染管线,他的使用上会产生了一些变化,包括…

RS485电路及程序设计

一、电路原理图 图中 A、B 总线接口,用于连接 485 总线。RO 是接收输出端,DI 是发送数据收入端,RE是接收使能信号(低电平有效),DE 是发送使能信号(高电平有效)。RE DE接在一起就是高…

jenkins安装配置--持续集成

目录 1.什么是持续集成 1.1持续集成 Continuous integration ,简称CI 1.2持续集成具有的特点: 1.3持续集成的作用 2.jenkins简介 2.1概述 2.2特点 3.jenkins安装 1.下载Jenkins 2.下载jdk 3.网盘安装包载 4.创建软件安装目录 5.上传jdk和Jen…

C-内存管理

内存管理 堆,栈,静态区 c程序地址空间分布规则: 栈是从高地址向低地址延伸的,后创建的变量,后入栈,那么地址就越小. 静态变量,作用域不变,声明周期发生改变.本质原因是存储位置发生改变.编译器编译的时候放到了全局数据区. #include<stdio.h> #include<stdlib.h>…

虾皮Shopee商品详情接口(item_get-根据ID取商品详情)代码封装

item_get-根据ID取商品详情接口 通过代码封装该接口可以拿到商品标题&#xff0c;商品价格&#xff0c;商品促销信息&#xff0c;商品优惠价&#xff0c;商品库存&#xff0c;sku属性&#xff0c;商品图片&#xff0c;desc图片&#xff0c;desc描述&#xff0c;sku图片&#xf…

基于阿里云服务器安装宝塔Linux面板详细流程(有图)

使用阿里云服务器安装宝塔面板教程&#xff0c;阿里云百科以ECS云服务器CentOS操作系统为例&#xff0c;安装宝塔Linux面板&#xff0c;先远程连接到云服务器&#xff0c;然后执行宝塔面板安装命令&#xff0c;系统会自动安装宝塔面板&#xff0c;安装完成后会返回面板地址、账…

JS数据分组

JS对数据进行分组_js数据分组_柳宁依的博客-CSDN博客 原理没看懂&#xff0c;增加分组显示数据部分。 <html> <head> <style> select { display: block; margin: auto; } table { border-collapse: collapse; margin: auto; } th, td { border: 1px solid b…

“裸奔”时代下,我们该如何有效应对网络攻击、数据泄露和隐私侵犯

随着互联网的普及&#xff0c;越来越多的个人信息被上传到互联网上&#xff0c;而网络攻击、数据泄露和隐私侵犯等问题也日益严重。在这个“裸奔”时代&#xff0c;如何保护我们的网络隐私成为了一项紧迫的任务。本文将介绍一些实用的技巧和工具&#xff0c;帮助我们有效应对网…

不强制存储的ListModel和ComboBoxModel

主方法代码&#xff1a; package com.aynu.layout;import com.aynu.model.NumberComboBoxListModel; import com.aynu.model.NumberListModel;import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import j…

从零开始 Spring Boot 28:资源

从零开始 Spring Boot 28&#xff1a;资源 图源&#xff1a;简书 (jianshu.com) Resource 接口 Spring中的资源被抽象为一个Resource接口&#xff1a; public interface Resource extends InputStreamSource {boolean exists();boolean isReadable();boolean isOpen();boole…

【人像抠图】使用vs2022,onnxruntime框架进行部署(视频和多图片处理)

一、人像抠图的应用场景 1. 图像编辑:在图像编辑软件中,人像抠图是常用操作之一。通过抠图可以将人物从原背景中分离出来,放到新背景中,实现人物换背景的效果。这在电影后期特效、游戏角色置换等领域有很广泛的应用。 2. 视频特效:在视频编辑与特效制作中,人像抠图也是关键技术…

Python的标准库argparse讲解

argparse 是 Python 的标准库之一&#xff0c;用于解析命令行参数。通过 argparse&#xff0c;你可以轻松定义你的脚本或应用程序所需的命令行参数&#xff0c;并从命令行中获取这些参数的值。 import argparse# 创建解析器 parser argparse.ArgumentParser()# 添加命令行参数…

【react 全家桶】高级指引(下)

本人大二学生一枚&#xff0c;热爱前端&#xff0c;欢迎来交流学习哦&#xff0c;一起来学习吧。 <专栏推荐> &#x1f525;&#xff1a;js专栏 &#x1f525;&#xff1a;vue专栏 &#x1f525;&#xff1a;react专栏 文章目录 13【react高级指引&#xff08;下&…

是哟Git时报错OpenSSL SSL_read: Connection was reset, errno 10054

文章目录 修改hosts的ip多尝试解除SSL验证 报错如下所示 遇到这个问题首先可以考虑开魔法或者开魔法加换个网比如开手机热点 解除SSL验证我没有试过, 我就在hosts文件中加上了ip的配置就好了 修改hosts的ip 根据网上的教程, 我试了试修改C盘中hosts文件的GitHub相关访问域名的…

QgsPoint类

在 QGIS 中&#xff0c;QgsPoint 类是用于表示二维或三维点的类。它由 X、Y 和 Z 坐标组成&#xff0c;并且可以带有一个可选的 M 值&#xff08;也称为测量值&#xff09;。以下是 QgsPoint 类的主要参数介绍&#xff1a; x&#xff1a;表示点的横向坐标值。y&#xff1a;表示…

在 Windows 上安装 scoop

一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡&#xff0c;让我们一起学习在在 Windows 上安装 scoop。如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连) 二、 scoop是什么 windows下的安装源搜索工具&#xff0c;有点类似centos下的yum和Ubuntu下的apt。用这个拉下来安装…

路径规划算法:基于粒子群优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于粒子群优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于粒子群优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法…

100+套大数据可视化模板

由于公司项目里面用到一个数据可视化大屏页面&#xff0c;自己网上各种谷歌百度&#xff0c;发现资源良莠不齐&#xff0c;而且大多数都是收费的&#xff0c;甚至一个页面一收费的那种。 前前后后自己不管是付费的还是免费的收集了不少&#xff0c;于是自己打算整理下&#xf…