码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 嵌入式开发需要掌握的u-boot命令


    如果不是在芯片级公司工作,而是在产品级公司工作,当我们拿到一款芯片,厂家都会提供可以使用的bootloader,我们对u-boot基本掌握就行,只需要掌握如下命令。

    目录

    1.1 查看帮助【help / ?】

    1.2 查看板子信息【bdinfo】

    1.3 查看当前板子环境变量【printenv】

    1.4 设置环境变量【setenv】

    1.5 uboot内存操作命令

    1.5.1 显示内存值【md】

    1.5.2 修改内存值【nm】

    1.5.3 修改内存值(自增)【mm】

    1.5.4 快速填充内存【nw】

    1.6 数据拷贝【cp】

    1.7 数据比较【cmp】

    1.8 uboot网络操作命令

    1.8.1 测试网络【ping】

    1.8.2 网络文件系统【nfs】

    1.8.3 简单文件传输【tftp】


    1.1 查看帮助【help / ?】

    直接使用help或“?”可以查看当前uboot支持的命令

    可以使用 help +其他命令,查看命令的使用说明。

    1.2 查看板子信息【bdinfo】

    1.3 查看当前板子环境变量【printenv】

     

    1.4 设置环境变量【setenv】

    环境变量如果不存在,则该命令创建变量,变量存在则修改替换

    设置完环境变量记得保存,保存环境变量【saveenv】,否则重启后将恢复原来的值。

    设置简单环境变量:=> setenv bootdelay 5



    设置字符串形式的环境变量,需要用单引号括起来
    => setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'

    删除环境变量,直接设置某个变量为空,如:=> setenv aaaa

    1.5 uboot内存操作命令

    内存操作命令就是用于直接对内存操作命令,常用内存命令有md、nm、 mm、mw、cp和 cmp。

    1.5.1 显示内存值【md】

    命令格式:
    md[.b, .w, .l] address [# of objects]
    命令中的[.b .w .l]对应 byte、word 和long,也就是分别以 1 个字节、2 个字节、4 个字节显示

    如查看以0X30000000开始的10个字节的内存值,显示格式为.b(10的16进制是0xa)

    md.b 30000000 a

    1.5.2 修改内存值【nm】

    命令格式:nm [.b, .w, .l] address

    它会先读取地址里面原来的内容,在?后面修改新值,输入q退出修改。

    1.5.3 修改内存值(自增)【mm】

    mm [.b, .w, .l] address,每次修改地址值会自增

    1.5.4 快速填充内存【nw】

    命令格式:mw [.b, .w, .l] address value [count]

    将地址address后面的count个b/w/l长度都修改为值value

    1.6 数据拷贝【cp】

    将 DRAM 中的数据从一段内存拷贝到另一段内存中,或者把NorFlash 中的数据拷贝到DRAM 中

    命令格式:cp [.b, .w, .l] source target count  

    1.7 数据比较【cmp】

    cmp 是比较命令,用于比较两段内存的数据是否相等

    命令格式:cmp [.b, .w, .l] addr1 addr2 count 

    1.8 uboot网络操作命令

    1.8.1 测试网络【ping】

    ping ipaddress

    1.8.2 网络文件系统【nfs】

    前提是先配置nfs服务器,linux下命令:sudo apt-get install nfs-kernel-server

    命令格式:
    nfs [loadAddress] [[hostIPaddr:]bootfilename]
    loadAddress 是要保存的 DRAM 地址,[[hostIPaddr:]bootfilename]是要下载的文件地址。

    如将文件下载到 80800000 地址:
    nfs 80800000 192.168.2.25:/home/fourth/linux/nfs/zImage

    1.8.3 简单文件传输【tftp】

    命令格式:tftpboot [loadAddress] [[hostIPaddr:]bootfilename]

    loadAddress 是文件在 DRAM 中的存放地址,[[hostIPaddr:]bootfilename]是要从Ubuntu 中下载的文件。

    使用tftp,在windows的话直接搜索tftpd这个软件。

    在linux下32位运行 sudo apt-get install tftpd-hpa,64位运行sudo apt-get install tftpd openbsd-inetd,安装完默认路径在/srv/tftp,可以通过修改/etc/inetd.conf中最后一个路径来修改文件路径。

    tftp 40000000 test.txt 把主机上test.txt下载到内存40000000的位置,test.txt中只有abcd几个字符,下载完毕,我们通过md命令查看内存,验证一下,成功。

  • 相关阅读:
    Ipadpro2020支持电容笔吗?好用的电容笔品牌排名推荐
    Java dom4j类简介说明
    Elasticsearch搜索引擎该怎么使用,这篇文章彻底讲透(荣耀典藏版)
    数据结构——第一章 算法
    VB6.0实现修改EXE程序的图标
    ESD监控报警器的功能特点以及应用领域
    SmartSoftHelp 7.0 最专业的c#代码生成器
    Python- socket编程
    grid实现“品”字布局
    基于Java毕业设计大学生兼职平台源码+系统+mysql+lw文档+部署软件
  • 原文地址:https://blog.csdn.net/freestep96/article/details/126866811
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号