U-Boot相关命令开发板烧写问题及解决方案

2023-10-26

前言

最近在学习u-boot命令在开发板的烧写,在进行该实验的过程中,出现了很多问题和错误,在这里我根据自己的开发历程,将我出现的几大问题进行了汇总,并附有相关解决办法,这些解决方案都经过我亲自验证有效,希望能让大家在开发过程中有所启发

问题描述:

在开启mobaXterm后反复重启

原因分析:

个人猜测可能是使用了错误的编译器版本,正点原子开发板支持的gcc编译器版本4.9.4
如果下载了更高版本的编译器,则只能在虚拟机内进行成功的编译,而一旦需要连接开发板,就会因为版本不兼容而失败,我猜测在使用mobaX时,开机进入循环的原因正是因为版本的问题。

解决方案:

因为编译器版本不兼容,所以我们需要重新在虚拟机内下载一个4.9.4版本的gcc编译器。
注意:在卸载原有gcc编译器之后,我们将正确版本的gcc编译器压缩包放到arm目录下,但此时我们在ls之后会发现有两个文件,其中一个显示为目录状态,这是不正确的,而且经过我的测试,我们无法直接sudo删除这个目录,我采用的方法是删除整个arm文件夹,之后sudo mkdir新建一个文件夹,再将安装包放进去,此时我们再ls只会就是正确的;如果在上述情况下不删除目录文件进行解压,则会显示解压失败。

在安装完成编译器以及其他依赖库之后,可以输入该条命令,检测一下自己编译器的版本
检测编译器版本命令

如果编译器版本显示为4.9.4,则代表编译器成功安装
正确的编译器版本
在成功安装正确的编译器版本之后,我们需要重新对U-Boot进行编译
在u-boot初次编译的时候,我们需要解压安装包文件,注意此时解压的目录一定要与一开始创建的目录匹配,建议大家直接进入文件后,选择终端打开。
在此目录下对安装包进行解压,解压完成后,我们需要配置shell脚本文件。

此时也可能会出现一个问题:

问题描述:

在我们对.sh文件进行编译时,很有可能
出现问题导致无法成功编译
编译失败产生问题

原因分析:

我认为是文件编写时,拼写或格式产生错误。

解决方案:

在这里给大家提供一种解决方案,我们不进入vim界面,直接在主界面按行输入命令,然后继续在该界面进行编译,这样可以逐条查找错误,而且一目了然,不会受到vim界面因字体或空格不清晰造成错误的问题困扰。再找到问题后,要回到vim界面进行改错。

配置完成之后,我们编译该.sh文件,此时我们再ls,就会发现出现了我们需要的u-boot.bin文件
此时我们只需要插入SD卡,将.bin文件烧写到SD卡中。
此时也可能出现一个问题:

问题描述:

在生成u-boot.bin文件之后,向SD卡烧写过程中速率过快

下载速率达到MB

原因分析:

可能是虚拟机USB版本不兼容

解决方案:

在虚拟机设置->USB控制器->USB兼容性改为3.1,重启虚拟机。
如果上述方法之后速率还是不正常,则建议检查一下自己的文件编写是否有误,根据我的经验,在某些地方的错误很可能不会有提示,但是当需要用到该文件时,还是会导致编译失败的情况。

在成功烧写完.bin文件进入SD卡之后,我们连接开发板,注意此时开发板一定要和虚拟机在同一个局域网内,开发板要插入网线。
通过mobaXterm进行连接,开机之后,有可能会产生一条提示:

问题描述:

错误的环境

原因分析:

出现这个问题可能是环境产生错误,虽然是warning,但经过我的测试,如果忽略此条提示,后面的编译不会成功,所以我们消除此警告

解决方案:

在命令行输入以下命令:
=> env default -a
=> saveenv
重启,警告就会消失。

在我们解决完警告之后,我们继续进行编译,此时很有可能会产生一条错误提示:

问题描述:

FEC1地址没有设置

原因分析:

我们没有设置FEC1的地址

解决方案:

这里的解决方案很简单,我们直接使用setenv,saveenv命令设置ip地址即可,在设置完之后重启,再打开就不会出现这条错误。

我们将所有的IP地址设置完成后,可以用ping命令检测一下,但是在此时,很有可能显示IP地址not alive,这里就产生了下一个问题。
我尝试过很多方法解决此问题,包括手动设置IP地址,在这里仅提供一种思路,我没有通过这种方式解决我的问题,我重新设置了我的serverip之后发现是我个人拼写IP地址时出现了错误,但还是把我用过的方法写在这里,为大家提供一种思路:

问题描述:

ping xx.xxx.xxx.xxx not alive

解决方案:

手动设置IP地址,在VM里添加一个vpn

在完成这些操作后,我们再ping一下,显示ip alive。说明我们已经连接成功
此时我们输入相关命令,即可在开发板中看到相关现象
但是在输入nfs和tftp命令时,我们还是可能遇到一些问题:
这里我在tftp时遇到了一些问题:

问题描述:

1.在虚拟机内编写tftp相关文件时,发现无法编译通过
2.在mobaXterm界面出现提示
tftp出现编译错误

原因分析:

vim中的编写有错误
mabaXterm命令编写错误

解决方案:

我们首先检查一遍vim中的编写是否有错误,如果能够在虚拟机内重启成功,则转到mobaXterm中寻找错误,我们检查一下我们的命令拼写是否有误,大概率是因为我们的命令拼写有错误,这里建议大家可以一行一行的编写,敲完一行就执行以下,这样分步执行简单直观。

总结

经过一系列的调试,我们到这里应该已经解决了大部分的问题,本文主要根据笔者自己在开发过程中遇到的问题及解决方案,难免会遗漏很多在开发过程中可能出现的其他问题,在这里欢迎大家补充,同时也换欢迎大家对我文章中的方法出现的错误进行批评指正。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

U-Boot相关命令开发板烧写问题及解决方案 的相关文章

  • 出现错误 /usr/bin/env: 节点:权限被拒绝

    我已经在我的服务器 Centos 上完成了 ODOO v9 安装 一切都已安装成功 登录页面也可以正常工作 但登录后我收到一个包含以下错误的页面 usr bin env node Permission Denied 我尝试更改权限 但我的问
  • DHCP 服务器将任何 url 重定向到登陆页面

    我有一个 Linux DHCP 服务器 我需要将所有网络流量重定向到一个登陆页面 该页面将包含有关如何在网络上注册计算机的说明 无论用户输入什么 URL 都需要将用户重定向到网页 在 DHCP 服务器上 即 用户输入 google com
  • 什么是 Linux 上易于使用的 C++ 分析器? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要分析一些在 Linux 上运行 C 的代码 你们能推荐一些分析器吗 使用 gprof 只需编译 pg标志 我认为 但不确定 你必须关
  • ELF 文件头

    关于 elf 文件头的一个简单问题 我似乎找不到任何关于如何在 elf 头中添加 更改字段的有用信息 我希望能够更改幻数并向标题添加构建日期 以及可能的其他一些内容 据我了解 链接器创建标头信息 但我在 LD 脚本中没有看到任何引用它的内容
  • 如何保护Linux中的堆内存?

    我想将一块堆内存设置为只读 为此我尝试过memalign with mprotect 但是从 memalignment 中我能得到什么 memalign 从进程堆中分配内存 我想将堆的某些部分设为只读 有什么帮助吗 malloc gt mm
  • 编写 AMD64 SysV 程序集时使用哪些寄存器作为临时寄存器?

    我正在使用实现一个功能cpuid根据 AMD64 SysV ABI 进行组装 我需要在函数本身中使用 2 个临时寄存器 第一个用于累积返回值 第二个用作计数器 我的功能目前如下所示 zero argument function some c
  • 如何找到某个命令的目录?

    我知道 当您使用 shell 时 唯一可以使用的命令是可以在 PATH 上设置的某些目录中找到的命令 即使我不知道如何查看 PATH 变量上的目录 这是另一个可以回答的好问题 我想知道的是 我来到 shell 并写道 lshw 我想知道 s
  • 使用端口 80 (Ubuntu / Linode) 运行 Node.js 的最佳实践 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在设置我的第一个Node js服务器上的cloud Linux node我对以下细节还很陌生Linux admin 顺便说一句 我并没有尝试
  • php.ini 更改,但在 Ubuntu 上无效

    我想更改 PHP 上传文件大小的限制 这是我的输出的一些信息phpinfo https www php net manual en function phpinfo php Configuration File php ini Path e
  • 窗口放置:适用于 Linux (KDE) 的类似 WinSplit Revolution 的应用程序? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 适用于 Linux KDE 的类似 WinSplit Revolution 的应用程序是什么 或者也许 KDE 中有一个我缺少的功能 平铺通常是窗口管
  • 从 Linux 内核模块的文件描述符获取文件名/路径?

    在Linux内核模块中 有没有一种方法可以从文件名 路径中获取文件名 路径 unsigned int fd 我知道这个答案 如何从内核模块内的文件描述符获取文件名 https stackoverflow com questions 8250
  • 哪个信号被传递到信号处理程序中死锁的进程

    我有一个来自调用信号处理程序后死锁的进程的核心转储 如何确定传送了哪个信号以及是谁发送的 GDB 为接收信号的线程生成的回溯如下 信号处理程序在第 15 帧中被调用 gdb bt 0 0x00007fa9c204654b in sys fu
  • 将管道输入转储到文件的简单方法是什么? (Linux)

    我正在寻找一个小 shell 脚本 它可以将任何内容通过管道传输到其中 并将其转储到文件中 用于电子邮件调试目的 有任何想法吗 unix 命令 tee 可以做到这一点 man tee
  • 使用 cmake 和 opencv 对符号“gzclose”的未定义引用[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我尝试构建该项目 doppia https bitbucket org rodrigob doppia 但发生链接错误 我想这是一
  • 打印堆栈指针的值

    如何在 Linux Debian 和 Ubuntu 中用 C 打印堆栈指针的当前值 我尝试谷歌但没有找到结果 一个技巧是简单地将本地地址作为指针打印出来 但它不可移植 甚至无法保证有效 void print stack pointer vo
  • 由于参数中有空格,Bash 脚本因未知选项而失败

    我正在尝试运行 aws create lambda 函数 事情的经过如下 eval aws lambda create function function name FUNCTION NAME runtime RUNTIME role RO
  • POSIX:FreeBSD 与 Linux 中的管道系统调用

    在 Linux 2 6 35 22 generic 中 man pipe指出 pipeline 创建一个管道 一个可用于进程间通信的单向数据通道 在 FreeBSD 6 3 RELEASE p5 中 man pipe指出 pipeline
  • 将尾部输出重定向到程序中

    我想使用 tail 作为标准输入向程序发送文本文件中的最新行 首先 我向程序回显一些每次都相同的输入 然后从输入文件发送尾部输入 该输入文件应首先通过 sed 处理 以下是我期望工作的命令行 但是当程序运行时 它只接收回显输入 而不接收尾部
  • 在 LINUX 上测量 TLB 未命中的命令

    有人可以指导我使用一个命令来测量 LINUX 上的 TLB 未命中吗 是否可以将轻微页面错误视为 TLB 未命中 您可以使用perf去做这个 前提是你的CPU支持 Use perf list了解可用的计数器 当我拿到这个列表并查找 TLB
  • 是否可以允许jenkins访问只有root或某些特定程序可以访问的文件?

    我基本上想做的是允许 jenkins 访问我的 android sdk linux 文件夹和所有子目录 我的老板不想自己更改文件夹的权限 我应该在构建过程中这样做 我见过一些在构建过程中在执行 shell 中运行一些命令的示例 是否可以在该

随机推荐

  • python+selenium抓取网页新闻列表元素,保存到excel文档中

    python selenium 抓取网页新闻列表元素 并记录标题和链接地址 保存到excel文档中 usr local bin python3 python3 9 coding UTF 8 File xwzx1 py Time 2021 0
  • 【QT学习】如何将一个QT的pro工程(qmake编译)移植变成一个cmake编译的工程

    1 背景 之前使用qt自带的编译方式 qmake的方式 编写运行qt程序 但是最近要跟ros框架的其他程序进行通讯要使用ros topic订阅发布 必须用msg 有些msg不能简单的使用std标准消息需要自己定义 但是qmake的方式不支持
  • Python 元组(Tuple)操作详解

    一 创建元组 代码如下 tup1 physics chemistry 1997 2000 tup2 1 2 3 4 5 tup3 a b c d 创建空元组 代码如下 tup1 元组中只包含一个元素时 需要在元素后面添加逗号来消除歧义 代码
  • 启动vmware虚拟机报错

    找到此系统的安装目录中后缀为 lck的文件或目录 将其删除或更改后缀就可以启动了
  • 第七周7.1数组运算课堂学习记录 求素数的方法改进/优化集锦《程序设计入门——C语言》第七期 浙江大学 翁恺

    求素数基本方法及优化 1 基本方法求素数 从2到x 1测试是否可以整除 对于n来说要走n 1遍 n很大时相当于 n 遍 include
  • GGally与pairs相关关系图_史上最全(一)

    作者 李誉辉 四川大学在读研究生 简介对于多个变量之间的相关关系 常常使用相关关系图来可视化 R自带有pairs 函数 可以画相关关系图 但是比较复杂 我们先介绍基于ggplot2的GGally包 等介绍完 再介绍pairs 函数 1 gg
  • 对部门的建议和期待怎么写_个人、项目、部门工作总结怎么写?给你三个模板...

    点击 免费订阅 商务合作QQ 493509007 工作中我们每周 每月 每年都要做总结 那么怎样才能做好总结呢 给大家三个模板 分别为个人工作 年 月 总结 项目 周 月 年 总结 部门 月 年 总结 一 个人 年 月 总结 1 计划的完成
  • 欢迎加入Java私活外包QQ群

    hi 最近有个两个Java项目需要找兼职程序员合作 要求至少会下面一项技术 1 JSP Servlet JDBC Tomcat 2 MongoDB 3 MySQL 4 Docker 5 Redis 6 Vertx 7 测试技术 压力测试 安
  • Protobuf C++ 版入门Demo

    Protobuf C 版入门Demo 前言 有关其编译和安装请查看 Protobuf C 版编译安装和简单使用 之前已经进行了编译安装 并且成功将已知的proto文件转化为cc和h 本文简单探讨如何使用Protobuf进行数据写入和读取 也
  • 使用three.js在Vue中创建3D图

    使用three js创建3D图 1 电梯 注意 只为自己做笔记用的 全部是收藏的博客地址当电梯用 1 电梯 1 展示 https wow techbrood com fiddle 34388 闪光球 https blog csdn net
  • 字典树(介绍+实现+例题)

    字典树 介绍 字典树也叫前缀树 Trie树等 字典树是一颗非典型的多叉树模型 字典树的结点包含有一个长度为26的指针数组 分别对应26个字母 指向当前字母对应的下一个字母 字典树充分利用了字符串的公共前缀 包含三个单词 sea sells
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • 多线程如何在 C 中实现?

    多线程 英语 multithreading 是指从软件或者硬件上实现多个线程并发执行的技术 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程 进而提升整体处理性能 具有这种能力的系统包括对称多处理机 多核心处理器以及芯片级
  • java内存马查杀工具

    java memshell scanner 扫描java内存马
  • 模版之AnyType

    title 模版之AnyType date 2023 02 19 21 49 53 permalink pages 54a0bf categories 通用领域 编程语言 C tags C 元编程 author name zhengzhib
  • Java里NonNull和NotNull

    https blog csdn net yangyangrenren article details 121180269 lombok NonNull 这个 annotation 是 lombok 提供的 根据官方的解释可以看出它是用来辅助
  • 华为OD机试 - 组成最大数(Java)

    题目描述 小组中每位都有一张卡片 卡片上是6位内的正整数 将卡片连起来可以组成多种数字 计算组成的最大数字 输入描述 号分割的多个正整数字符串 不需要考虑非数字异常情况 小组最多25个人 输出描述 最大的数字字符串 用例 输入 22 221
  • Pycharm 交互式Console BUG问题解决 - OSError: [Errno 22] Invalid argument: ‘D:\pyCHram\<input>‘

    引言 Pycharm python console是一个很好用的交互式编程栏 但是在跑一些深度学习模型的时候 偶尔会发生类似于这种错误的报错 导致无法在交互式的Python console模式下运行测试代码 Pycharm 问题解决 OSE
  • 攻防世界NewsCenter思路

    打开环境后发现是这样一个页面 考虑到xss或者sql注入 尝试了alert无果 便试试sql注入 随便输入aaa后使用burp抓包 将这些保存在1 txt里 用sqlmap抓包 命令 sqlmap py r 1 txt dbs 这里看到一个
  • U-Boot相关命令开发板烧写问题及解决方案

    前言 最近在学习u boot命令在开发板的烧写 在进行该实验的过程中 出现了很多问题和错误 在这里我根据自己的开发历程 将我出现的几大问题进行了汇总 并附有相关解决办法 这些解决方案都经过我亲自验证有效 希望能让大家在开发过程中有所启发 问